【发布时间】:2026-02-09 19:10:01
【问题描述】:
我想构建一个响应式的 3 列布局。对于大屏幕,我有 3 列,中型屏幕减少到 2 列,小屏幕减少到 1 列。块包含文本,因此它们具有不同的高度。我的目标是创建一行与顶部对齐的块(此插图指的是 3 列布局,但原则也适用于 2 列)。
但我最好的结果如下
完全不同,是的。我认为问题在于我无法创建块的虚拟“线”,我可以将 1-2-3 和 4-5-6 对齐到顶部。这是我的代码(我没有在 jsfiddle 上发布它,因为在宽屏幕上效果会更好)。
HTML
<div class="span3">
<b>ONE</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>
<div class="span3">
<b>TWO</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque interdum risus nulla, ac tristique dolor tincidunt consequat. Nunc malesuada pharetra scelerisque.
</div>
<div class="span3">
<b>THREE</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>
<div class="span3">
<b>FOUR</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>
<div class="span3">
<b>FIVE</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque interdum risus nulla, ac tristique dolor tincidunt consequat. Nunc malesuada pharetra scelerisque.
</div>
<div class="span3">
<b>SIX</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</div>
CSS
.span3 {
float:left;
display:inline-block;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
text-align:left;
border:1px solid;
}
@media only screen and (min-width:951px)
{
.span3 {
width:31%;
margin-left:3.5%;
}
.span3:nth-child(3n+1) {
margin-left:0%;
}
}
@media only screen and (min-width:501px) and (max-width:950px)
{
.span3 {
width:48%;
margin-left:4%;
}
.span3:nth-child(odd) {
margin-left:0%;
}
}
@media only screen and (max-width:500px)
{
.span3 {
width:100%;
margin-left:0%;
}
}
有人可以帮忙吗?提前致谢。
注意我知道有很多框架具有此功能(例如 question),但如果可能的话,我更愿意保留自己的代码。
【问题讨论】:
标签: css layout responsive-design