網(wǎng)格布局實現(xiàn)雙列布局
1. 前言
網(wǎng)格其實就是最近比較火的 Grid 布局,原理就是把父元素分割成一個個的小格子,然后子元素指定自己具體在那個格子上,有點類似于表格布局。
2. 實現(xiàn)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 清除默認(rèn)樣式 */
* { padding: 0; margin: 0; }
/* 令html和body全屏顯示, 并有一個灰色背景 */
html, body { height: 100%; background: gray; }
/* 找到直接父元素 */
body {
/* 顯示為網(wǎng)格布局 */
display: grid;
/* 設(shè)置垂直方向為兩列 */
grid-template-columns: repeat(2, 1fr);
/* 列之間的間距為10像素 */
gap: 10px;
}
div {
/* 給個高度 */
height: 100%;
/* 白色背景 */
background: white;
}
</style>
</head>
<body>
<div></div>
<div></div>
</body>
</html>
運行結(jié)果:
可以看到這個列間距只會針對于列與列之間的距離,所以這兩列和屏幕之間的距離為 0,那么該如何進行改進呢:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 清除默認(rèn)樣式 */
* { padding: 0; margin: 0; }
/* 令html和body全屏顯示, 并有一個灰色背景 */
html, body { height: 100%; background: gray; }
/* 找到直接父元素 */
body {
/* 顯示為網(wǎng)格布局 */
display: grid;
/* 設(shè)置垂直方向為五列 */
grid-template-columns: repeat(2, 10px 1fr) 10px;
}
div {
/* 給個高度 */
height: 100%;
/* 白色背景 */
background: white;
}
/* 設(shè)置左側(cè)列的位置 */
.left { grid-area: 1 / 2 / 2 / 3; }
/* 設(shè)置右側(cè)列的位置 */
.right { grid-area: 1 / 4 / 2 / 5; }
</style>
</head>
<body>
<div class="left"></div>
<div class="right"></div>
</body>
</html>
運行結(jié)果:
3. 小結(jié)
其實原理也很簡單,我們把間距也設(shè)置成一列,這樣的話算上間距一共就五列了:
然后將左側(cè)列設(shè)置為父元素的第二列,右側(cè)列設(shè)置為父元素的第四列即可。