CSS布局带来的巨大影响:CSS display属性值
网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。
应原书编辑要求,先在文章顶部给出链接:《Everything You Know About CSS Is Wrong》http://www.sitepoint.com/books/csswrong1/
这本书是10月发行的新书,为了避免版权纠纷,如要转载本文请保留以上链接,并遵循该 CC2.5协议。
从 digital-web 的首页上看到一个标题《Everything You Know About CSS Is Wrong》,被雷过之后仔细看了下原文,发现了一种新的CSS布局思路(其实就是详细介绍了display:table属性)。在IE6仍是王道的时代谈这种技术为时过早,全当是练习英文翻译贴出来给大家分享下,欢迎大家指点不足之处。
—————————以下是中文翻译——————————–
当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:table、table-row和table-cell,它也是最后一款支持这些属性值的主流浏览器。它标志着复杂CSS布局技术的结束,同时也给了HTML表格布局致命一击。最终,使用CSS布局来制作出类似于table布局的栅格将会变得十分迅速和简单。
网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。
使用CSS表格
CSS表格能够解决所有那些我们在使用绝对定位和浮动定位进行多列布局时所遇到的问题。例如,“display:table;”的CSS声明能够让一个HTML元素和它的子节点像table元素一样。使用基于表格的CSS布局,使我们能够轻松定义一个单元格的边界、背景等样式,而不会产生因为使用了table那样的制表标签所导致的语义化问题。
在深入了解这种方法之前,让我们先来写份HTML文档实例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
? HTML head content…
</head>
<body>
<div id="wrapper">
<div id="header"></div>
<div id="main">
<div id="nav">
? navigation column content…
</div>
<div id="extras">
? news headlines column content…
</div>
<div id="content">
? main article content…
</div>
</div>
</div>
</body>
</html>
这份HTML源代码满足了内容呈现方面的要求。先是导航栏,然后是附加栏,最后是内容栏。
我们同样需要将以下CSS样式应用上去:
#main {
display: table;
border-collapse: collapse;
}
#nav {
display: table-cell;
width: 180px;
background-color: #e7dbcd;
}
#extras {
display: table-cell;
width: 180px;
padding-left: 10px;
border-right: 1px dotted #d7ad7b;
}
#content {
display: table-cell;
width: 380px;
padding-left: 10px;
}
这种基于表格的新CSS布局方式能够正确的在IE8、Firefox、Safari和Opera(译者注:包括FF2/FF3/Google都通过了测试)中显示出来。下面这张图片是它在IE8中的样子:
我们轻松实现了三栏等高布局,而无需使用伪造背景图片之类的技巧,更不用担心定位和清除浮动的问题!
相关文章
深入解析CSS的display:inline-block属性的使用
这篇文章主要介绍了CSS的display:inline-block属性的使用,其中对使用时产生的空隙问题的解决作了重点讲解,需要的朋友可以参考下2015-11-09- 在一般的CSS布局制作时候,我们常常会用到display对应值有block、none、inline这三个值。下面我们来分别来认识和学习什么时候用什么值。这里通过CSS display知识加实例讲解2014-09-02
- visiblity 是设置元素的可见性,即可见 / 隐藏;display 是设置元素按什么样的方式来显示,是按块显示,不了解的朋友可以参考下2014-02-24
css中display和visibility的用法和区别介绍
css中display和visibility想必前台美工对它并不陌生吧,如果你感觉自己对它还不是很熟悉的话,不妨了解本文对display和visibility的使用介绍2013-11-17- 到现在可能有人不知道display:block的作用,问了一句在div的元素里面写display:block有用吗?至于这个问题可以详细参考喜下本文,希望对大家有所帮助2013-09-24
谈谈CSS隐藏元素(display,visibility)的区别
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间;有的可以响应点击,有的不能响应点击2013-04-09- 在IE6中设置display:block的空容器为一个较小高度时不知道大家有没有注意到其高度不能小于某个值,接下来为您详细介绍下IE6中容器高度的BUG,感兴趣的你可以参考下本文2013-03-06
CSS display:block在Firefox下显示布局错乱问题
本文向大家介绍一下如何解决CSS display:block在Firefox下显示布局错乱问题,按照常理,对于某一单元行需要显示时,使用CSS display:block属性,在IE浏览器中显示正常,但2012-12-30基于display:table的CSS布局让HTML元素和像table一样
display:table的CSS声明能够让一个HTML元素和它的子节点像table元素一样。使用基于表格的CSS布局,使我们能够轻松定义一个单元格的边界、背景等样式,而不会产生因为使用了2012-12-07- 网页制作Webjx文章简介:这篇文章所讲的也是非常使用的技术,其中牵涉到其他的技术,也需要大家有所了解。正好这两天也在看这方面的资料,提供一些资料给大家参考。2009-04-02
最新评论