Heim  >  Artikel  >  Web-Frontend  >  display:table、display:table-row和display:table-cell的用法_html/css_WEB-ITnose

display:table、display:table-row和display:table-cell的用法_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:41:222037Durchsuche

display:table和display:table-cell的用法:

建议:尽可能的手写代码,可以有效的提高学习效率和深度。

display属性的table和table-cell属性值不怎么常用,主要是浏览器的兼容性并不好,因为万恶的IE6和IE7还有相当一部分用户在使用,不过并非没有它们展露头角的机会,在display:table-cell的用法简介中已经对display:table-cell做了简单的介绍,但是感觉不够全面,下面就集合实例稍稍全面的介绍一下。

三个属性值的基本概念:

1.table:指定对象作为块元素级的表格,类同于html标签

2.table-row:指定对象作为表格行,类同于html标签

3.table-cell:指定对象作为表格单元格,类同于html标签

从以上属性值的基本概念定义可以看出,它们可以打造一个非table相关标签建立的表格效果,代码实例如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="http://www.51texiao.cn/" /><title>蚂蚁部落</title><style type="text/css"> .table{   display:table; } .tr{   display:table-row;   width:200px;   height:200px; } .td{   display:table-cell;   width:100px;   height:100px;   background-color:green;   border:1px solid red; } tr{   width:200px;   height:200px; } td{   width:100px;   height:100px;   background-color:green;   border:1px solid red; } </style> </head> <body> <div class="table">   <div class="tr">     <div class="td"></div>     <div class="td"></div>   </div> </div> <br/> <table cellpadding="0" cellspacing="0">   <tr>     <td></td>     <td></td>   </tr> </table> </body> </html>

从以上代码的表现来看,为div添加了相关属性值之后,差不多完全具有了表格的相关特性,当然上面的演示并不能够完全说明表格所具有的相关特性,以上代码只是说明三个属性值的作用。到这里可能会有朋友提出这样的疑问:在众多的实际应用中并没有完整的定义类似表格这样的层次关系,而是往往只有display:table-cell,这是因为,如果一个对象具有display:table-cell,而它的父元素和祖父元素没有定义display:table-row和display:table-cell,那么就会匿名的创建这两个父元素,尽管外观没有任何变化。代码实例如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="http://www.51texiao.cn/" /><title>蚂蚁部落</title><style type="text/css"> .parent{   width:200px;   height:200px;   background-color:green;   display:table-cell;   vertical-align:middle; } .children{   width:60px;   height:60px;   background-color:red;   font-size:12px; } </style> </head> <body> <div class="parent">    <div class="children">蚂蚁部落</div> </div> </body> </html>

以上代码中,父元素中具有display:table-cell,但是它并没有父元素或者祖父元素定义display:table-row和display:table-cell。这个时候就会匿名创建两个具有此属性的对象,当然外观是看不出来的。以上代码中之所以子元素可以垂直居中对齐,是因为td元素具有valign属性,而vertical-align:middle只会在具有valign属性的对象中生效,所以上面代码就成功实现了垂直居中效果。在兼容各个浏览器的位置高度div垂直居中效果中,middle对象中使用了display:table-cell,它的父对象parent中也显示声明了display:table-cell,否则会匿名创建两个具有此属性的对象,middle对象的尺寸就会根据内容自适应了,这样在标准浏览器中就不能达到垂直居中效果了。

原文地址是:http://www.51texiao.cn/div_cssjiaocheng/2015/0501/504.html

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn