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

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

WBOY
WBOYOriginal
2016-06-24 12:29:411387Durchsuche

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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn