我試圖在CSS中創建交錯佈局,其中每行只有一個項目,但它將與其他行上的項目偏移。使用flexbox在CSS中混淆項目
到目前爲止,我已經做了兩個工作示例,但我想知道是否有更好的方法來實現此目的。
下面是我用間隔的div做出了表率: http://cdpn.io/e/EWrMgL
HTML:
<div class="container">
<div class="row">
<div class="spacer">(spacer)</div>
<div class="content col-2">content 2</div>
<div class="spacer">(spacer)</div>
</div>
<div class="row">
<div class="content col-1">content 1</div>
<div class="spacer">(spacer)</div>
<div class="spacer">(spacer)</div>
</div>
<div class="row">
<div class="spacer">(spacer)</div>
<div class="spacer">(spacer)</div>
<div class="content col-3">content 3</div>
</div>
<div class="row">
<div class="spacer">(spacer)</div>
<div class="spacer">(spacer)</div>
<div class="content col-3">content 3</div>
</div>
</div>
CSS:
.container, .spacer, .content, .row {
display: flex;
}
.container {
flex-flow: row wrap;
font-family: sans-serif;
}
.row {
width: 100%
}
.spacer {
color: #2c3e50;
flex: 1 1 0%;
}
.content {
color: #ecf0f1;
flex : 3 1 0%;
flex-basis: 60%
}
.content, .spacer {
justify-content: center;
align-items: center;
min-height: 5em;
margin: 0.5em;
}
.col-1 {
background-color: #96858F;
}
.col-2 {
background-color:#9099A2;
}
.col-3 {
background-color: #6d7993;
}
我做了使用的利潤率在一個更清潔的版本另有企圖而不是每個包裝 連續項:http://cdpn.io/e/xqMBmB
HTML:
<div class="container">
<div class="content col-2">content 2</div>
<div class="content col-1">content 1</div>
<div class="content col-3">content 3</div>
<div class="content col-3">content 3</div>
</div>
CSS:
.container, .content{
display: flex;
}
.container {
flex-flow: row wrap;
font-family: sans-serif;
}
.content {
color: #ecf0f1;
flex: 0 1 70%;
justify-content: center;
align-items: center;
min-height: 5em;
margin-bottom: 0.5em;
}
.col-1 {
background-color: #96858F;
}
.col-2 {
background-color:#9099A2;
margin-left: 7.5%;
}
.col-3 {
background-color: #6d7993;
margin-left: 15%;
}
有一個更清潔的方式來做到這一點比封閉每一行中一個div或更改頁邊距?我會添加@media規則,使行在某個屏幕尺寸以下的100%寬度。