我试图在网格系统中使用表格单元格,利用行上的负边距来消除嵌套网格元素上的左侧和右侧排水沟。这适用于浮动和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