display:table的用法

  • 格式:pdf
  • 大小:98.06 KB
  • 文档页数:2

display:table的⽤法

⽬前,在⼤多数开发环境中,已经基本不⽤table元素来做⽹页布局了,取⽽代之的是div+css,那么为什么不⽤table系表格元素呢?

1、⽤DIV+CSS编写出来的⽂件k数⽐⽤table写出来的要⼩,不信你在页⾯中放1000个table和1000个div⽐⽐看哪个⽂件⼤

2、table必须在页⾯完全加载后才显⽰,没有加载完毕前,table为⼀⽚空⽩,也就是说,需要页⾯完毕才显⽰,⽽div是逐⾏显⽰,不需要页⾯完全加载完毕,就可以⼀边加载⼀

边显⽰

3、⾮表格内容⽤table来装,不符合标签语义化要求,不利于SEO

4、table的嵌套性太多,⽤DIV代码会⽐较简洁

但是有的项⽬中⼜需要类似表格的布局怎么办呢?可以⽤display:table来解决

display:table系列⼏乎是和table系的元素相对应的,请看下表:

table(类似

)此元素会作为块级表格来显⽰,表格前后带有换⾏符。

inline-table(类似

)此元素会作为内联表格来显⽰,表格前后没有换⾏符。

table-row-group(类似

)此元素会作为⼀个或多个⾏的分组来显⽰。

table-header-group(类似

)此元素会作为⼀个或多个⾏的分组来显⽰。

table-footer-group(类似

)此元素会作为⼀个或多个⾏的分组来显⽰。

table-row(类似

)此元素会作为⼀个表格⾏显⽰。

table-column-group(类似

)此元素会作为⼀个或多个列的分组来显⽰。

table-column(类似

)此元素会作为⼀个单元格列显⽰。

table-cell(类似

)此元素会作为⼀个表格单元格显⽰。

table-caption(类似

)此元素会作为⼀个表格标题显⽰。

⽬前display:table的应⽤场景也是⽐较⼴泛的,Google地图在搜索路线时,左侧的路线详情就是⽤的display:table来实现的。

1.div模拟表格:

模拟表格

张三

李四

王五

张三

李四

王五

2.让块级标签实现⾏内效果,即浮动⾄同⼀横轴,并实现等⾼效果

table表格中的单元格最⼤的特点之⼀就是同⼀⾏列表元素都等⾼。所以,很多时候,我们需要等⾼布局的时候,就可以借助display:table-cell属性。说到table-cell的布局,不得不说⼀

下“匿名表格元素创建规则”:

CSS2.1表格模型中的元素,可能不会全部包含在除HTML之外的⽂档语⾔中。这时,那些“丢失”的元素会被模拟出来,从⽽使得表格模型能够正常⼯作。所有的表格

元素将会⾃动在⾃⾝周围⽣成所需的匿名table对象,使其符合table/inline-table、table-row、table- cell的三层嵌套关系。

举个例⼦吧,如果我们为元素使⽤“display:table-cell;”属性,⽽不将其⽗容器设置为“display:table-row;”属性,浏览器会默认创建出⼀个表格⾏,就好像⽂档中真的存在⼀个被声

明的表格⾏⼀样。

display:table实现浮动效果

内容内容内容内容内容内内容内

内容内容内容内容内容内容内容内容内容

内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内

上例中div.row可以不要,效果⼀样

3.结合vetical-align实现块级元素垂直居中