Grid网格布局(补充中......)

编程入门 行业动态 更新时间:2024-10-20 15:56:04

Grid<a href=https://www.elefans.com/category/jswz/34/1770341.html style=网格布局(补充中......)"/>

Grid网格布局(补充中......)

Grid网格布局

(我画了一个图,便于更好理解网格布局,有亿点点潦草)

row line:行线
column line:列线
track:网格轨道,行与行或列与列之间的区域
gap:网格间距,
cell:网格单元格
area:网格区域,由一个或多个单元格组成

一、属性

display: grid;
display: inline-grid;
grid-template-columns: 80px 100px 90px;将容器设为三列,每列的列宽依次为80、100、90px
grid-template-rows: 90px 90px 90px;容器设为三行,每列的行高是100px
grid-template-areas: ‘a a a’ ‘b b b’ ‘c c c’;定义区域名称,
grid-template上面三个属性的合并形式
grid多个属性合并(不建议使用)
grid-row-gap: 10px;行与行的间隔
grid-column-gap: 20px;列与列的间隔
grid-gap上面两个属性的合并写法,也可以简写为gap
justify-content
align-content
place-content
grid-template-columns: repeat(3, 100px);分为3列, 每列100px
grid-template-columns: repeat(auto-fit, 200px);自适应, 每列200px
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));自适应列数, 每列最小100px
grid-template-columns: repeat(3, 1fr);3列,每列宽度相同
grid-template-columns: 100px 1fr 2fr;第一列100px,剩余空间按 1 : 2 的比例分给第二、第三列
grid-template-columns: 100px auto;第一列100px,第二列宽度为剩余空间
grid-template-columns: 1fr 1fr minmax(200px, 2fr);前两列宽度相同 ,最后一列是常规下是第一列的二倍,最小 200px
grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];设置网格线名为[c1]、[c2]
grid-auto-columns: 50px 50px 50px;位置超出定义列数时的宽度,
grid-auto-rows: 50px 50px 50px;位置超出定义行数时的高度
grid-auto-flow容器的子元素会排列顺序: row"先行后列"、 column"先列后行"、 row dense 和 column dense
grid-column-start: 1;左边框所在的垂直网格线
grid-column-end: 2;/右边框所在的垂直网格线
grid-row-start: 1;上边框所在的水平网格线
grid-row-end: 2;下边框所在的水平网格线
grid-column: 1 / 2;grid-column-start和grid-column-end的合并简写形式 也可以结合网格线和span关键字
grid-row:1 / 2;grid-row-start属性和grid-row-end的合并简写形式 也可以结合网格线和span关键字
grid-area: a指定项目放在哪一个区域 由容器上的grid-template-area划分区域
justify-self: startend
align-self: startend
place-self: ;// align-self属性和justify-self属性的合并简写形式

二、举个栗子

1、

.container {display: grid;grid-template-columns: 150px auto 150px;/*第一列150px 第二列自动 第三列150px*/grid-gap: 1em;/*空隙*/
}
header, footer {grid-column: 1 / 4;/*是grid-column-start和grid-column-row的合并写法*/
}
header,
aside,
article,
footer {background: #1a4a65;color:white;display: grid;place-content: center;/*align-content和justify-content的合并写法*/height: 17vh;
}
@media all and (max-width: 700px) {aside,article {grid-column: 1 / 4;}
}
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>栗子</title>
</head>
<body>
<div class="container"><header>栗子1</header><aside>栗子2</aside><article>栗子3</article><aside>栗子4</aside><footer>栗子</footer>
</div>
</body>
</html>

2、

.parent {display: grid;grid-template: 100px 100px 100px / 100px 100px 100px;gap: 10px;/* 网格间距*/
}
.item {border: 1px solid #999;
}
.a{grid-column: 1/3;/*第一条先开始,第三条线结束*/grid-row: 1/2;background:yellow;
}
.b{grid-column: 2/3;grid-row: 2/3;/*第二条先开始,第三条线结束*/background:#758493;
}
.c{grid-column: 3/4;grid-row: 3/4;background:#55fd11;
}
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>JS Bin</title>
</head>
<body>
<div class="parent"><div class="item a">1</div><div class="item b">2</div><div class="item c">3</div>
</div>
</body>
</html>

3、

#container{display: grid;grid-template-columns: repeat(auto-fill, 100px);/*自适应, 每列100px*/grid-template-rows:100px 100px 100px;  /*行高100px*/grid-auto-rows: 50px 50px 50px;  /*位置超出定义行数时的高度*/justify-content: space-between;  /**/gap: 10px;}
.item{background:yellow;
}
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>自适应</title>
</head>
<body>
<div id="container"><div class="item">a</div><div class="item">b</div><div class="item">c</div><div class="item">d</div><div class="item">e</div><div class="item">f</div><div class="item">g</div><div class="item">h</div><div class="item">i</div><div class="item">g</div><div class="item">j</div><div class="item">k</div>
</div>
</body>
</html>

更多推荐

Grid网格布局(补充中......)

本文发布于:2024-03-08 19:17:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722001.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网格   布局   Grid

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!