我有一个 320px 宽的 div。我在左侧浮动列表项,每个项的宽度为 100px。然后,我希望每个列表项的右侧有 10px 的右边距。所有其他边距和填充已被删除。
所以,我基本上想要每行 3 个列表项,然后再进入下一行。但是因为第 3 个项目(即所有项目)有一个边距,所以它进入下一行(所以每行只有 2 个项目)。
有没有办法在这种情况下每行有 3 个项目,而无需创建额外的类或使用脚本。
我有一个 320px 宽的 div。我在左侧浮动列表项,每个项的宽度为 100px。然后,我希望每个列表项的右侧有 10px 的右边距。所有其他边距和填充已被删除。
所以,我基本上想要每行 3 个列表项,然后再进入下一行。但是因为第 3 个项目(即所有项目)有一个边距,所以它进入下一行(所以每行只有 2 个项目)。
有没有办法在这种情况下每行有 3 个项目,而无需创建额外的类或使用脚本。
使用CSS3 选择器:
ul:nth-child(3n) { margin-left: 0px; ... }
ul:nth-child(3n+1) { margin-left: 10px; ... }
ul:nth-child(3n+2) { margin-left: 10px; ... }
由于缺乏 CSS3 支持,可能不实用。
你的 div 必须是 320px 宽吗?最简单的解决方案是使 div 宽 330px。如果它的容器只有 320px,你可以使用类似margin-right: -10px
.
据我所知,不使用类来识别每行中的最后一项是不可能的(如果您使用脚本语言生成列表,您可以轻松地做到这一点)。否则,您可以将 margin-left 划分为 330px20px / 3 = 6px
或将其宽度<div>
增加到 330 像素,以便容纳额外的边距。
这是一个适用于 IE6 及更高版本的选项(可能是 IE5+ - 我还没有测试过)。
请注意,这仅适用于 3 个项目。第 4 项将应用 10 像素的左边距,第 6 项将被推送到下一行。我敢肯定,比我聪明的人可以弄清楚。
我正在使用表达式(我猜是脚本——但可能对你有用)和条件注释来获得 IE6 中的第一个孩子。享受:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Columns test</title>
<style type="text/css" media="screen">
#container {
border: 1px solid red;
width: 320px;
overflow: hidden;
}
.column {
margin-left: 10px;
width: 100px;
float: left;
background: #ccc;
}
.column:first-child {
margin-left: 0;
}
</style>
<!--[if IE 6]>
<style type="text/css" media="screen">
.column {
margin-left: expression((this===this.parentNode.childNodes[0])?"0":"10px");
display: inline;
}
</style>
<![endif]-->
</head>
<body>
<div id="container">
<div class="column">
<p>Column 1</p>
</div>
<div class="column">
<p>Column 2</p>
</div>
<div class="column">
<p>Column 3</p>
</div>
</div>
</body>
</html>
使用 wordpress,这可以通过在“wordpress 循环”中添加几个位来完成......这里的解决方案:http ://wordpress.org/support/topic/368646
.divFloat { margin-left: 10px; ...}
.divFloat:First {margin-left: 0; ...}
如果以上不起作用,请尝试将宽度设置为 99px,并确保删除 div 的任何边框。有时浏览器可能会出现一些舍入问题,以至于您无法真正期望它们的行为。