【发布时间】:2015-02-22 06:11:16
【问题描述】:
我正在尝试创建一个仅在内部 div 上有边框的响应式网格。
我通过对除最后一个没有边框的每个 div 使用border-right 来做到这一点。当我使用媒体查询来更改框的宽度,移动页面上的框位置时,问题就出现了,最后一个 div 成为下一行的第一个 div,所以它缺少边框。
这里是JSFiddle example。
HTML:
<div class = "box">
<p>Box 1</p>
</div>
<div class = "box even">
<p>Box 2</p>
</div>
<div class = "box">
<p>Box 3</p>
</div>
<div class = "box last even">
<p>Box 4</p>
</div>
<div class = "box">
<p>Box 1</p>
</div>
<div class = "box even">
<p>Box 2</p>
</div>
<div class = "box">
<p>Box 3</p>
</div>
<div class = "box last even">
<p>Box 4</p>
</div>
CSS:
.box {
float: left;
width: 25%;
height: 300px;
text-align: center;
border-right: 1px solid black;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.box.last {
border: none;
}
@media screen and (max-width: 600px) {
.box {
width: 33.3333333333%;
}
.box.last {
border-right: 1px solid black;
}
}
@media screen and (max-width: 450px) {
.box {
width: 50%;
}
.box.even {
border: none;
}
}
@media screen and (max-width: 300px) {
.box {
width: 100%;
border: none;
}
}
在 600 像素以上,方框为 25%(因此四个并排)。
在 450 像素时,框为 50%,添加一个新类就可以了。但这对于奇数来说变得很棘手。所以在 451 - 600 像素,33.3% 的盒子,我错过了边框。
有谁知道如何让这件事变得简单吗?还是我的整个方法都错了?
谢谢!
【问题讨论】:
标签: css responsive-design grid border