跟着敲了一遍……
浏览器兼容问题:
- 两边对齐可以选择宫格化布局。
<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
display:grid;
/* grid-gap: 30px 50px */
grid-column-gap:30px;
grid-row-gap: 50px;
/* 一行放两列、两个auto */
grid-template-columns: auto auto;
background-color: palevioletred;
padding: 10px;
}
.grid-item {
background-color: #fff;
border: 1px solid #999;
padding: 20px;
font-size: 30px;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item item1">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item">5</div>
<div class="grid-item">6</div>
<div class="grid-item">7</div>
<div class="grid-item">8</div>
<div class="grid-item">9</div>
</div>
<p>请使用 <em>grid-column-gap</em> 属性调整列之间的空间。</p>
<p>请使用 <em>grid-row-gap</em> 属性调整行之间的空间。</p>
</body>
</html>
属性的简单介绍
1.grid-column-gap
grid-column-gap
属性设置列之间的间隙:
2. grid-row-gap
grid-row-gap
属性设置行之间的间隙:
3. grid-gap
grid-gap
属性是grid-row-gap
和grid-column-gap
属性的简写属性:
.grid-container {
display: grid;
grid-gap: 30px 50px;
/*grid-column-gap:30px;
grid-row-gap: 50px;*/
}
4. grid-column 属性:
grid-column
属性定义将项目放置在哪一列上。您可以定义项目的开始位置以及结束位置。注释:
grid-column
属性是grid-column-start
和grid-column-end
属性的简写属性。
如需放置某个项目,您可以引用行号(line numbers),或使用关键字 “span” 来定义该项目将跨越多少列。
- 使 “item1” 从第
1
列开始并在第5
列之前结束:
.item1 {
grid-column: 1 / 5;
}
5. grid-row属性
grid-row
属性定义了将项目放置在哪一行。注释:
grid-row
属性是grid-row-start
和grid-row-end
属性的简写属性。
如需放置项目,您可以引用行号,或使用关键字 “span” 定义该项目将跨越多少行:
使 “item1” 在 row-line 1
开始,在 row-line 4
结束:
.item1 {
/* grid-column: 1 / 5; */
grid-row: 1 / 5;
}
6.grid-template-columns 属性
grid-template-columns
属性定义网格布局中的列数,并可定义每列的宽度。- 该值是以空格分隔的列表,其中每个值定义相应列的长度。
- 如果您希望网格布局包含 4 列,请指定这 4 列的宽度;如果所有列都应当有相同的宽度,则设置为
"auto"
。
两个auto
就是一行放两个且等宽。
grid-template-columns: auto auto;
7.grid-template-rows 属性
grid-template-rows
属性定义每列的高度。
.grid-container{
grid-template-rows: 50px 100px 150px;
}
fr的使用
<div class="list">
<div class="list-item">找到了自我</div>
<div class="list-item">这是一篇你看不懂的文章</div>
<div class="list-item">OK Fine</div>
</div>
.list {
margin-top: 20px;
display: grid;
grid-template-columns: auto auto;
.list-item {
padding: 15px 20px;
text-align: center;
border: solid 1px silver;
}
}
使用auto
时候、内容会自动分配所占空间。
备注:
fr
单位分配的是可用空间而非所有空间,所以如果某一格包含的内容变多了,那么整个可用空间就会减少,可用空间是不包括那些已经确定被占用的空间的。
使用fr
grid-template-columns: 1fr 1fr;