2012-10-18 43 views
12

我試圖在網格系統中使用表格單元格,利用行上的負邊距來消除嵌套網格元素上的左側和右側排水溝。這適用於浮動和inline-block的元素很好,但與display: table元素,同時尊重負左邊距,忽略負面右頁邊距:不能在表格元素上使用負右邊距?

Table with negative right margin

奇怪,不是嗎?一個簡單的演示:http://jsfiddle.net/57FAN/1/

不幸的是,所有瀏覽器似乎都以相同的方式實現。有任何想法嗎?

P.S.讓我們推遲討論table-*元素的佈局,直到flex框標準化。

+0

沒有理由推遲了表格排版的爭論就像是沒有理由使用表格佈局。 – Kyle

+3

@KyleSevenoaks OP不使用表格,他使用表格顯示屬性。規則是不使用表格標籤進行佈局,因爲它用於表示表格數據,而不是讓非表格元素看起來像表格。 – cimmanon

+0

噢,我沒聽清楚。當然使用display:table;財產完全合法(不是諷刺)。謝謝你清理那個。 – Kyle

回答

6

表格不會忽略負邊距,但寬度僅爲100%,向左移5px。你需要一個「100%+ 2 * 5px」來完全填充灰色區域。

該行沒有寬度,因此使用可用的整個寬度。

如果你會使用

.row { 
    margin: 0 -5px; 
    width: 100%; 
} 

你會看到寬度相等

+0

啊,你是對的。我沒有考慮寬度:在塊級元素上的auto不總是與width:100%相同。 –

0

您的代碼有更多marginpadding屬性的。所以它看起來像那樣。這裏我更正了一些代碼。

Fiddle DEMO

+0

謝謝Selva,但邊距和填充是網格系統的一部分,無法刪除。 –