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

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 <= 800 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 800 ? "776" : "1000") : "776px") : "1000" );

}

#wrapper {

width:expression( documentElement.clientWidth <= 800 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 800 ? "776" : "1000") : "776px") : "1000" );

}

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

Footer

Code

1

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 <= 800 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 800 ? "776" : "1000") : "776px") : "1000" );

256

257}

258

259#wrapper {

260

261width:expression( documentElement.clientWidth <= 800 ? (documentElement.clientWidth == 0 ? (body.clientWidth <= 800 ? "776" : "1000") : "776px") : "1000" );

262

263}

264

265

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

266

267

268

269

270

271

272

273

274

275

Footer

276

277

278

279

280

281

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值