html - 优雅的 CSS 间距定位

标签 html css

假设我有以下 HTML:

<div id="Wrapper">
    <div class="MyClass"></div>
    <div class="MyClass"></div>
    <div class="MyClass"></div>
    <div class="MyClass"></div>
    <div class="MyClass"></div>
</div>

和以下 CSS:

.MyClass {
    float: left;
    margin-right: 5px;
}

所有这些元素都将放置在一行中,中间有 5px 的间距。问题是最后还会有5px的空格。我想让 Wrapper 真正包装 .MyClass div,这样边缘就没有空间了。

现在我可以想到几种方法:

  • 使用 jquery,将最后一个元素的右边距设置为 0。
  • 使用 CSS 创建一个新类 - .MyClassForLastElement 并将 marin-right 设置为 0。
  • .Wrapper 创建 -5px 的负 right-margin

我想知道是否有一种优雅而聪明的方法。

最佳答案

不确定是否有完美的解决方案,我曾经这样做过:

.MyClass {
    float: left;
    margin-left: 5px;
}
.MyClass:first-child {
    margin-left: 0;
}

我使用 first-child 来实现它,因为它在 IE6-7 中受支持,而 last-child 不支持。

关于html - 优雅的 CSS 间距定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778251/

相关文章:

html - <img> 与背景图像 : url ('' ) in fixed header (explanation)

html - 无法选择html文本

css - 混淆高 DPI PC 设备在 css 中的分辨率

jquery - jquery 对话框的 css 属性

javascript - 使用 getElementsByName 获取多个元素,更改它们的名称会得到奇怪的结果

html - 纯CSS响应式布局

javascript - php 和 javascript 在发布到本地服务器时无法将文件发布到远程服务器

css - 媒体查询最小宽度不考虑低于一定宽度的设备

css - 网络可用颜色模型

javascript - 选择前弹出显示