当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS教程:div仿框架方法

CSS样式表
用css实现图片垂直居中的使用技巧
CSS List Grid Layout 图片垂直居中
IE6网页神奇BUG
Marquee高级用法实例代码
web标准知识——从p开始,循序渐进
web标准知识——用途相似的标签
html链接与文本标签们
当标题不能显示完整的解决方法
详解链接的rel与target区别
使css兼容IE8的小技巧
CSS 首字母大写代码
CSSvista可同时在IE和Fifrefox调试的CSS编辑提供下载
css font缩写总结附实例
css下margin、padding、border、background和font缩写示例
用CSS来控制图片显示大小的代码
css下划线颜色一句话代码
css常见问题解决方法小结
relative absolute无法冲破的等级问题解决
div总是被select遮挡的解决方法
CSS文字截取功能实现代码

CSS样式表 中的 CSS教程:div仿框架方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 169 ::
收藏到网摘: n/a

参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP9.6 / SF3 / Chrome2
操作系统:Windows

问这样的问题的人很多,我对此有比较深入的研究,但自己从来没有给出过完整的解答与分析,觉得有些对不住列祖列宗。

先请看demo:

运行代码框
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

大家看到,此时div的实际高宽,完全由left / right / top / bottom这四个属性所掌控着,于是我们便可以借助这个特性,轻松地完成div仿框架的效果了:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

让我们将应该有滚动条的地方的滚动条效果折腾出来:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

以上方法其实早已由wiseinfo在 Html+CSS 构建 B/S结构软件界面 — 布局篇 — position方式 中进行过介绍,在该文中,ie6亦是分而治之的,它的方法是在html代码顶部加入“<?xml version=”1.0″ encoding=”UTF-8″?>”,使得ie6进入quirks mode(怪异模式)来完成ie6下的div仿框架,但这样做将出现一些影响比较显著的弊端:

  1. quirks mode下的ie6连盒模型都变了,就是说你在页面中写任何内容就要慎用padding和border,况且quirks mode下的变化还不止这一点。
  2. 如果底部使用绝对定位,则会发生“绝对定位基对象(在此为body)高度为偶数时,出现1px空隙”的bug。

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

于是我们需要另辟蹊径。

在很多次失败之后,我终于发现有一个标签可以救ie6于水深火热,那就是最伟大的“<html>”标签,它继承了ie6 quirks mode(怪异模式)下的盒模型状态。

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

利用这一点,我们可以在不太轻松的调整之后完成以下效果:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

再用下我们的二列布局知识来完成最终形态,在此我们将艳遇著名的3px bug(不喜欢它可以找点别的办法):

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

现在我们拥有了ie6的仿框架和非ie6的div仿框架的最终形态,只需要利用hack做个简单的加法则行了:
(当然,同一属性写两遍,后面的属性所对应的值将覆盖前者,这个基础的优先级基础大家还需要温故一下。)
(再“当然”一下——当然,有人对hack深恶痛绝,那么请在使用之前,阅读此文看看是否能消消心头之恨。)

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

它很强大而实用,真的:

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]