【发布时间】:2021-10-02 17:06:34
【问题描述】:
这个想法是不使用任何框架。
基本上我正在使用一个 .row 类,它将包含我的网格,它将是 flexbox。每个孩子都会有一个班级,会说明它将占用多少width(类似于引导网格),例如:
.col1: {width: 25%};
.col2: {width: 50%};
.col3: {width: 75%};
.col4: {width: 100%};
如果我将 4 个 div 与 .col1 类放在一起,它们应该在同一行,因为它们将占据容器的 25% (.row),但如果我再放一个 div 它就会消失下降到另一行,因为它超过了容器的100%。
|| col1 | col1 | col1 | col1 || //4 divs each div with 25% in the same .row.
|| col1 | col1 | col1 | col1 || //5 divs each div with 25% in the same .row.
|| col1 | |
|| col3 | col1 || //2 divs 1 of 75% other of 25% .row.
问题是我的网格应该总是在每个元素之间包含 20px 的空间,如下图所示:
我不知道如何在每个 div 之间放置一个空格并且仍然遵守上述规则,如果我有 4 个 divs 类 .col1 它们必须在同一行(包括空格)。
如果我有一个带有.col3 的div 和另一个带有.col1 的div,它应该是:
我该怎么做?
我试过这个:(div之间的gap超过了div's width的百分比,这就是为什么这个例子中的divs不在同一行,即使有4个divs应该占据 .row 的 100%,因为每个人将拥有 width 的 25%。
)
html,body{
padding:0px;
margin:0px;
box-sizing: border-box
}
.row{
display:flex;
flex-wrap:wrap;
border:1px solid red;
width:100%;
gap: 20px;
}
.row div{
border:1px solid blue;
background:yellow;
font-size:24px;
text-align:center;
height:100px;
}
.col1{
width:25%;
}
.col2{
width:50%;
}
.col3{
width:75%;
}
.col4{
width:100%;
}
<div class="row">
<div class="col1">col1</div>
<div class="col1">col1</div>
<div class="col1">col1</div>
<div class="col1">col1</div>
</div>
如何解决?还是有更好的方法来实现这一点?
注意:.row 的第一个 div 的开头不需要空格,.row 的最后一个 div 的结尾也不需要空格
【问题讨论】:
-
您可能正在寻找
grid-gap: xpx -
@RizaKhan 我尝试了 gap,但它对我没有用,或者我不知道我做错了什么。
标签: css