2013-04-20 103 views
3

在一個元素上使用CSS display:table-cell時,是不是某些方式優先/要求它的父元素有display:table-rowdisplay:table我可以使用表格單元作爲獨立式樣嗎?

這可以獨立在一個文件?

<div style="display:table-cell;">content</div> 

或者以表標記的方式,我應該嵌套一些額外的父標記適當的風格?

<style> 
.table {display:table;} 
.tr {display:table-row;} 
.td {display:table-cell} 
} 
</style> 
<div class="table"> 
    <div class="tr"> 
    <div class="td">content</td> 
    </div> 
</div> 

使用顯示:表細胞是在同一行(尤其是因爲沒有空白它們之間呈現)佈局元素一個很好的伎倆,但我想知道,如果它僅僅是:一招。我能期待這種行爲在未來某個時候會發生變化嗎?

這是否在風格上不正確?這似乎在所有(現代)瀏覽器始終顯示(IE7和更低的不支持display:table-cell

<style> 
.cell { 
    display:table-cell; 
    padding:0px 5px; 
    background-color:#aaaaaa; 
} 
</style> 
<div> 
    <span class="cell">option one</span> 
    <span class="cell">option two</span> 
    <span class="cell">option three</span> 
</div> 
+0

如果它在需要它工作的瀏覽器中工作,請使用它。山上沒有神靈。 W3-lympus會用閃電擊中你。 – bookcasey 2013-04-20 13:41:24

+0

那麼IE 14或Mozilla Fire Sloth呢? (來自未來的瀏覽器) – Matthew 2013-04-20 13:44:37

+0

@Mthethew甚至不能預測未來。 – millimoose 2013-04-20 13:51:19

回答

8

你可以自由地做任何一種方式。如果未提供表格和表格行元素,則會爲您插入匿名的元素(只要瀏覽器遵循W3C規範)。

http://www.w3.org/TR/CSS21/tables.html#anonymous-boxes

任何表元素會自動產生圍繞自身必要匿名 表對象,由對應於一個「表」 /「行內表」元素至少三個嵌套 對象的,一個 '表格行「元素和」表格單元「元素。

請記住,匿名元素無法設置樣式。如果你的table-cell元素中沒有足夠的內容,這只是一個問題,它們佔用了它們父級寬度的100%。在這種情況下,只需要一個表格元素,就可以刪除表格行。

+0

非常豐富,謝謝。 – Matthew 2013-04-20 14:49:53

相關問題