自適應雙欄佈局是常見的佈局之一,頁面上有兩列內容,一欄由內容撐開,另一欄自動撐滿剩餘寬度
1、通過 BFC 實現
<div class="wrap">
<div class="left">
<p>Hello World</p>
<p>Good Night</p>
</div>
<div class="right">
<p>Say Hello To Tomorrow</p>
<p>Say Goodbye To Yesterday</p>
</div>
</div>
.wrap {
/* BFC */
overflow: hidden;
zoom: 1; /* compatible with IE6 */
}
.left {
background-color: lightskyblue;
/* float + margin */
float: left;
margin-right: 20px;
}
.right {
background-color: deepskyblue;
/* BFC */
overflow: hidden;
zoom: 1; /* compatible with IE6 */
}
2、通過 Flex 實現
<div class="wrap">
<div class="left">
<p>Hello World</p>
<p>Good Night</p>
</div>
<div class="right">
<p>Say Hello To Tomorrow</p>
<p>Say Goodbye To Yesterday</p>
</div>
</div>
.wrap {
/* flex container */
display: flex;
}
.left {
background-color: lightskyblue;
/* flex item */
flex-grow: 0;
/* margin */
margin-right: 20px;
}
.right {
background-color: deepskyblue;
/* flex item */
flex-grow: 1;
}
3、通過 Grid 實現
<div class="wrap">
<div class="left">
<p>Hello World</p>
<p>Good Night</p>
</div>
<div class="right">
<p>Say Hello To Tomorrow</p>
<p>Say Goodbye To Yesterday</p>
</div>
</div>
.wrap {
/* grid container */
display: grid;
grid-template-columns: auto 1fr;
grid-column-gap: 20px;
}
.left {
background-color: lightskyblue;
}
.right {
background-color: deepskyblue;
}
【 閱讀更多 CSS 系列文章,請看 CSS學習筆記 】