>웹 프론트엔드 >HTML 튜토리얼 >DIV+CSS经典布局[宽度自适应][自动屏幕居中]_html/css_WEB-ITnose

DIV+CSS经典布局[宽度自适应][自动屏幕居中]_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 12:29:411446검색

Header

分析:

 最外层的wrapper把所有内容都嵌套在里边,整体相对定位。max min已经很好的控制了最窄最宽值,但对IE没有作用。如果没有其他布局的穿插,这一层其实写在body内就可以,少一层嵌套。

#wrapper{ width:auto; border:1px solid #000; min-width:776px; max-width:1000px; text-align:left; margin-left:auto; margin-right:auto; position:relative;}

 

wrapper 下级的 outer header footer

其中header绝对定位,footer 相对定位;outer分别对左右有130px的外边距,这是兼容非IE的关键。

#outer{ margin-left:130px; margin-right:130px; background:silver; border-left:1px solid #000; border-right:1px solid #000; color: #000;}
#header{ position:absolute; top:0; left:0; width:100%; height:70px; line-height:70px; border-bottom:1px solid #000; overflow:hidden; background:#0ff; text-align:center; font-size:xx-large}
#footer { width:100%; clear:both; line-height:50px; border-top:1px solid #000; background:#ffc; color:#000; text-align:center; position:relative;}

outer 下级的 clearheader outerwrap right clearer

clearheader 用做填补header的空白,clearer 是一个常用的填充hack用法。
outerwrap 宽为什么是99%,而不是100%?
因为他的上层outer有边框,100%宽再加2个边框象素就会撑大,FF有明显效果。
right 的处理很经典,IE下解析为定位,FF下则为浮动。负边距的处理也刚好使用上outer留出的空白。

#clearheader{ height:72px;}
.outerwrap { float:left; width:99%;}
#right {
position:relative;
width:130px; float:right; left:1px;
margin-right:-129px;
}
* html #right { margin-right:-130px; margin-left:-3px}
.clearer{ height:1px; overflow:hidden; margin-top:-1px; clear:both;}

outerwrap 内的 centrecontent left clearer 思路与上面类似。

指定IE5.0及版本以上浏览器有效

使用expression方法实现对IE5.0及以上版本的宽度条件控制,实现自动调整宽度并居中。宽度我都固定了数值,因为如果在这里使用auto,会在调整窗口大小过程中发生div内容无法显示的问题。

body {
width:expression( documentElement.clientWidth }
#wrapper {
width:expression( documentElement.clientWidth }

这个例子融合了很多DIV+CSS的经典用法和定义,同时很传统和实用。

Footer

 

Code
  1nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2
  3
  4
  5


  6
  7
  8
  9test
 10
 11
 12
 13
186
187
188
189
190
191

192
193
Header

194
195

196
197

198
199

200
201

分析:


202
203

 最外层的wrapper把所有内容都嵌套在里边,整体相对定位。max min已经很好的控制了最窄最宽值,但对IE没有作用。如果没有其他布局的穿插,这一层其实写在body内就可以,少一层嵌套。


204
205

#wrapper{ width:auto; border:1px solid #000; min-width:776px; max-width:1000px; text-align:left; margin-left:auto; margin-right:auto; position:relative;}


206
207


208
209

wrapper 下级的 outer header footer


210
211

其中header绝对定位,footer 相对定位;outer分别对左右有130px的外边距,这是兼容非IE的关键。


212
213

#outer{ margin-left:130px; margin-right:130px; background:silver; border-left:1px solid #000; border-right:1px solid #000; color: #000;}

214
215#header{ position:absolute; top:0; left:0; width:100%; height:70px; line-height:70px; border-bottom:1px solid #000; overflow:hidden; background:#0ff; text-align:center; font-size:xx-large}

216
217#footer { width:100%; clear:both; line-height:50px; border-top:1px solid #000; background:#ffc; color:#000; text-align:center; position:relative;}


218
219

outer 下级的 clearheader outerwrap right clearer


220
221

clearheader 用做填补header的空白,clearer 是一个常用的填充hack用法。

222
223outerwrap 宽为什么是99%,而不是100%?

224
225因为他的上层outer有边框,100%宽再加2个边框象素就会撑大,FF有明显效果。

226
227right 的处理很经典,IE下解析为定位,FF下则为浮动。负边距的处理也刚好使用上outer留出的空白。


228
229

#clearheader{ height:72px;}

230
231.outerwrap { float:left; width:99%;}

232
233#right {

234
235position:relative;

236
237width:130px; float:right; left:1px;

238
239margin-right:-129px;

240
241}

242
243* html #right { margin-right:-130px; margin-left:-3px}

244
245.clearer{ height:1px; overflow:hidden; margin-top:-1px; clear:both;}


246
247

outerwrap 内的 centrecontent left clearer 思路与上面类似。


248
249

指定IE5.0及版本以上浏览器有效


250
251

使用expression方法实现对IE5.0及以上版本的宽度条件控制,实现自动调整宽度并居中。宽度我都固定了数值,因为如果在这里使用auto,会在调整窗口大小过程中发生div内容无法显示的问题。


252
253

body {

254
255width:expression( documentElement.clientWidth 
256
257}

258
259#wrapper {

260
261width:expression( documentElement.clientWidth 
262
263}


264
265

这个例子融合了很多DIV+CSS的经典用法和定义,同时很传统和实用。


266
267

268
269

270
271

272
273

274
275
Footer

276
277

278
279
280
281
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.