问题
我有一个简单的浮动列表,每个项目都有边框,但不是每边都有。
如何?
示例
小提琴
jsfiddle(已更新预期结果)
HTML
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
<br><br>
<ul class="three">
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
<h2>Expected result</h2>
<ul>
<li>One</li>
<li style="border-right: none;">Two</li>
<li>Three</li>
<li style="border-right: none;">Four</li>
<li style="border-bottom: none;">Five</li>
</ul>
<br><br>
<ul class="three">
<li>One</li>
<li>Two</li>
<li style="border-right: none;">Three</li>
<li style="border-bottom: none;">Four</li>
<li style="border-bottom: none;">Five</li>
</ul>
CSS
li {
border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc;
width: 50%;
float: left;
-moz-box-sizing: border-box;
box-sizing: border-box;
list-style: none;
padding: 30px;
}
ul {
margin-bottom: 20px;
overflow: hidden;
}
ul.three li {
width: 33.33%;
}
答案 0 :(得分:1)
如果您只想在内部使用边框而在容器周围没有边框,则可以添加overflow:hidden;
的容器并在<ul>
元素上使用负边距来隐藏不需要的边框:
<强> DEMO 强>
这样,您就不必根据每个元素在容器中的位置来定位每个元素以添加特定的边框。
div {
overflow: hidden;
margin-bottom: 20px;
}
ul {
margin: 0 -1px -1px 0;
padding: 0;
overflow: hidden;
}
li {
float: left;
width: 50%;
padding: 30px;
box-sizing: border-box;
list-style: none;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
.three li {
width: 33.33%;
}
&#13;
<div>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
</div>
<div>
<ul class="three">
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
</div>
&#13;