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

CSS样式表
CSS定位中Positoin、absolute、Relative的一些研究
脚本控制三行三列自适应高度DIV布局的代码
word-wrap在firefox中不起作用的解决方法
网页设计者需要了解的_网页字体大小数据参考
div+css与xhtml+css分别是什么意思?
xhtml+css网页制作中常见问题解决方法
表格标签table深入了解
DIV+CSS网页另类上下布局的实例代码
CSS实现每行新闻数量不等效果代码
JAVASCRIPT IE 与 FF 中兼容写法记录
让超出DIV宽度范围的文字自动显示省略号...
CSS使用学习总结
解决IE6 3像素Bug的css写法
用CSS控制表格或单元格强制换行,防止表格被英文单词或中文撑大
firefox margin-top失效的原因与解决办法
IE hack条件写法
css pointer控制在firefox下显示手型的代码
纯CSS实现上下左右都居中的代码
在DW中CSS编码需要注意和掌握的一些技巧
DIV CSS网页布局 最小高度(min-height)的妙用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 145 ::
收藏到网摘: 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 全部选择 提示:你可先修改部分代码,再按运行]