【发布时间】:2013-08-04 03:18:08
【问题描述】:
在 CSS 中指定元素间距的最佳方法是什么?
我目前使用以下规则在.container 元素的每个子元素之间指定0.3rem 空格,而不在第一个子元素之前或最后一个子元素之后添加任何空格。
.container > * + * {
margin-left:0.3rem;
}
有没有更清洁/更高效的方法来做到这一点?我想一个适当的 CSS 属性应用于 .container 而不是它的所有子元素会更好,但我还没有找到这样的属性。
Flexbox 和/或其他最近的 CSS 改进完全可以接受。
我的目标是最近的 Chrome 版本(目前,stable 版本为 28,dev 版本为 30),但任何浏览器的解决方案都将不胜感激。
谢谢。
【问题讨论】:
-
您认为 Flexbox 为何会用于此目的?
-
我认为 flexbox 对此没有用处,因为我在 W3C flexbox 规范中找不到任何真正做到这一点的东西。我引用它作为我愿意使用的较新 CSS 规范的示例。然而,在阅读整个 flexbox 规范之前,我希望它会有这样的 CSS 属性,因为将它包含在 CSS 中是明智的,而且 flexbox 是一个比其他 CSS / HTML 布局更明智的布局规范我已经用过。
-
你已有的有问题吗?
-
它目前可以工作,但如果存在,我更愿意使用更简洁、更高效的 CSS 规则。
-
我也在寻找这个问题的答案。 @XDR,您找到解决方案了吗?我喜欢上面给出的解决方案,尽管在使用 flexbox
order属性对.container的子元素进行排序时确实遇到了问题。我目前正在使用:.flex > *:not(:last-child) { margin-right: 97px; }。如果我找到比这里已经提出的更好的解决方案,我会发布答案。