关于使用css将DIV模拟成为表格

9 篇文章 0 订阅

CSS display:table属性

当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:CSS display:table、 CSS display:table-row和CSS display:table-cell,它也是最后一款支持这些属性值的主流浏览器。它标志着复杂CSS布局技术的结束,同时也给了HTML表格布局致命一击。最终,使用CSS布局来制作出类似于table布局的栅格将会变得十分迅速和简单。

网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。

使用CSS表格

CSS表格能够解决所有那些我们在使用绝对定位和浮动定位进行多列布局时所遇到的问题。例如,“CSS display:table;”的CSS声明能够让一个HTML元素和它的子节点像table元素一样。使用基于表格的CSS布局,使我们能够轻松定义一个单元格的边界、背景等样式,而不会产生因为使用了table那样的制表标签所导致的语义化问题。

在深入了解这种方法之前,让我们先来写份HTML文档实例:

 
 
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN"  
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  3. <htmlxmlnshtmlxmlns=http://www.w3.org/1999/xhtml
  4. lang="en-US"> 
  5. <head> 
  6. ?HTMLheadcontent…  
  7. </head> 
  8. <body> 
  9. <dividdivid="wrapper"> 
  10. <dividdivid="header"></div> 
  11. <dividdivid="main"> 
  12. <dividdivid="nav"> 
  13. ?navigationcolumncontent…  
  14. </div> 
  15. <dividdivid="extras"> 
  16. ?newsheadlinescolumncontent…  
  17. </div> 
  18. <dividdivid="content"> 
  19. ?mainarticlecontent…  
  20. </div> 
  21. </div> 
  22. </div> 
  23. </body> 
  24. </html> 

这份HTML源代码满足了内容呈现方面的要求。先是导航栏,然后是附加栏,最后是内容栏。我们同样需要将以下CSS样式应用上去:

 
 
  1. #main{  
  2. display:table;  
  3. border-collapse:collapse;  
  4. }  
  5.  
  6. #nav{  
  7. display:table-cell;  
  8. width:180px;  
  9. background-color:#e7dbcd;  
  10. }  
  11.  
  12. #extras{  
  13. display:table-cell;  
  14. width:180px;  
  15. padding-left:10px;  
  16. border-right:1pxdotted#d7ad7b;  
  17. }  
  18.  
  19. #content{  
  20. display:table-cell;  
  21. width:380px;  
  22. padding-left:10px;  
  23. }  
  24.  

这种基于表格的新CSS布局方式能够正确的在IE8、Firefox、Safari和Opera(译者注:包括FF2/FF3/Google都通过了测试)中显示出来。下面这张图片是它在IE8中的样子:

我们轻松实现了三栏等高布局,而无需使用伪造背景图片之类的技巧,更不用担心定位和清除浮动的问题!

需要注意的是,我们在进行布局表格的时候,需要两层div,一层是模拟table,一层是模拟tabel-cell

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值