我試圖在網格系統中使用表格單元格,利用行上的負邊距來消除嵌套網格元素上的左側和右側排水溝。這適用於浮動和inline-block的元素很好,但與display: table
元素,同時尊重負左邊距,忽略負面右頁邊距:不能在表格元素上使用負右邊距?
奇怪,不是嗎?一個簡單的演示:http://jsfiddle.net/57FAN/1/
不幸的是,所有瀏覽器似乎都以相同的方式實現。有任何想法嗎?
P.S.讓我們推遲討論table-*元素的佈局,直到flex框標準化。
我試圖在網格系統中使用表格單元格,利用行上的負邊距來消除嵌套網格元素上的左側和右側排水溝。這適用於浮動和inline-block的元素很好,但與display: table
元素,同時尊重負左邊距,忽略負面右頁邊距:不能在表格元素上使用負右邊距?
奇怪,不是嗎?一個簡單的演示:http://jsfiddle.net/57FAN/1/
不幸的是,所有瀏覽器似乎都以相同的方式實現。有任何想法嗎?
P.S.讓我們推遲討論table-*元素的佈局,直到flex框標準化。
表格不會忽略負邊距,但寬度僅爲100%,向左移5px。你需要一個「100%+ 2 * 5px」來完全填充灰色區域。
該行沒有寬度,因此使用可用的整個寬度。
如果你會使用
.row {
margin: 0 -5px;
width: 100%;
}
你會看到寬度相等
啊,你是對的。我沒有考慮寬度:在塊級元素上的auto不總是與width:100%相同。 –
沒有理由推遲了表格排版的爭論就像是沒有理由使用表格佈局。 – Kyle
@KyleSevenoaks OP不使用表格,他使用表格顯示屬性。規則是不使用表格標籤進行佈局,因爲它用於表示表格數據,而不是讓非表格元素看起來像表格。 – cimmanon
噢,我沒聽清楚。當然使用display:table;財產完全合法(不是諷刺)。謝謝你清理那個。 – Kyle