显示:inline-block last-child 宽度 100% 与其兄弟姐妹不对齐
Display: inline-block last-child width 100% doesn't align with its siblings
我正在与 CSS display: inline-block
合作。
.container div
{
display: inline-block;
width: calc((100% - 13px) / 2);
margin: 2px;
background: #fff;
border-radius: 10px;
color: #5e5e5e;
cursor: pointer;
margin-bottom: 6px;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
border-bottom: 2px solid #80D0C7;
position: relative;
}
.container div:last-child
{
width: 100%;
}
<div class="container">
<div class="red">Red</div>
<div class="green">green</div>
<div class="blue">blue</div>
<div class="orange">orange</div>
<div class="black">black</div>
</div>
我把 width: 100%
放在 div last-child 上。但是它给了额外的padding/margin。
我的问题是,如何使 div last-child 适合宽度 100% 而无需任何额外 padding/margin?
在.container
中使用display: flex
,然后在所有div中使用flex-basis: calc(50% - 4px)
(其中4px
是每个div
中边距的总和)最后一组flex-basis: 100%
.container {
display: flex;
flex-wrap: wrap;
}
.container div {
background: #fff;
border-radius: 10px;
color: #5e5e5e;
cursor: pointer;
margin: 2px 2px 6px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
border-bottom: 2px solid #80D0C7;
position: relative;
flex: 0 calc(50% - 4px)
}
.container div:last-child {
flex-basis: 100%;
}
<div class="container">
<div class="red">Red</div>
<div class="green">green</div>
<div class="blue">blue</div>
<div class="orange">orange</div>
<div class="black">black</div>
</div>
我正在与 CSS display: inline-block
合作。
.container div
{
display: inline-block;
width: calc((100% - 13px) / 2);
margin: 2px;
background: #fff;
border-radius: 10px;
color: #5e5e5e;
cursor: pointer;
margin-bottom: 6px;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
transition: all 0.3s cubic-bezier(.25,.8,.25,1);
border-bottom: 2px solid #80D0C7;
position: relative;
}
.container div:last-child
{
width: 100%;
}
<div class="container">
<div class="red">Red</div>
<div class="green">green</div>
<div class="blue">blue</div>
<div class="orange">orange</div>
<div class="black">black</div>
</div>
我把 width: 100%
放在 div last-child 上。但是它给了额外的padding/margin。
我的问题是,如何使 div last-child 适合宽度 100% 而无需任何额外 padding/margin?
在.container
中使用display: flex
,然后在所有div中使用flex-basis: calc(50% - 4px)
(其中4px
是每个div
中边距的总和)最后一组flex-basis: 100%
.container {
display: flex;
flex-wrap: wrap;
}
.container div {
background: #fff;
border-radius: 10px;
color: #5e5e5e;
cursor: pointer;
margin: 2px 2px 6px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
border-bottom: 2px solid #80D0C7;
position: relative;
flex: 0 calc(50% - 4px)
}
.container div:last-child {
flex-basis: 100%;
}
<div class="container">
<div class="red">Red</div>
<div class="green">green</div>
<div class="blue">blue</div>
<div class="orange">orange</div>
<div class="black">black</div>
</div>