We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。
Gird布局由Grid容器和Grid项目构成。Grid项目(网格元素)只能是容器的顶层子元素。
Grid布局属性有两类:
display属性
在元素上设置display:grid或display:inline-grid可以创建一个网格容器。
display:grid
display:inline-grid
display:grid ; 容器元素为块级元素 display:inline-grid; 容器元素为行内元素
grid-template-columns
grid-template-rows
.wrapper { display: grid; /* 声明了三列,宽度分别为 200px 200px 200px */ grid-template-columns: 200px 200px 200px; /* 声明了两行,行高分别为 50px 50px */ grid-template-rows: 50px 50px; }
对于重复的值可以通过repeat()函数重写:
.wrapper { display: grid; grid-template-columns: repeat(3,200px); grid-template-rows:repeat(2,50px); }
除了repeat函数外,还有以下关键字:
grid-template-columns: repeat(auto-fill, 200px) -- 表示列宽是 200 px,但列的数量是不固定的,只要浏览器能够容纳得下,就可以放置元素 grid-template-columns: 200px 1fr 2fr -- 表示第一个列宽设置为 200px,后面剩余的宽度分为两部分,宽度分别为剩余宽度的 1/3 和 2/3 minmax(100px, 1fr) -- 表示列宽不小于100px,不大于1fr grid-template-columns: 100px auto 100px -- 表示第一第三列为 100px,中间由浏览器决定长度
gap属性
grid-row-gap 属性、grid-column-gap 属性分别设置行间距和列间距。grid-gap 属性是两者的简写形式。
grid-row-gap
grid-column-gap
grid-gap
grid-row-gap: 10px; 表示行间距是 10px grid-column-gap: 20px; 表示列间距是 20px grid-gap: 10px 20px; 等同上述两个属性
grid-template-areas
用于定义区域,一个区域由一个或多个单元格组成
.container { display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 100px; grid-template-areas: 'a b c' 'd e f' 'g h i'; }
上面代码先划分出9个单元格,然后将其定名为a到i的九个区域,分别对应这九个单元格。 多个单元格合并成一个区域:
grid-template-areas: 'a a a' 'b b b' 'c c c';
上面代码将9个单元格分成a、b、c三个区域,如果某些区域不需要利用,则用.表示。
.
grid-auto-flow
划分好网格后,容器的子元素会按照顺序,自动放置在每一个网格。 顺序就是由grid-auto-flow决定,默认为行,代表"先行后列",即先填满第一行,再开始放入第二行。
1 2 3 4 5 6 7 8 9
当换成列后,排列变成下面的情况:
1 4 7 2 5 8 3 6 9
justify-items 属性设置单元格内容的水平位置(左中右),align-items 属性设置单元格的垂直位置(上中下)。
justify-items
align-items
.container { justify-items: start | end | center | stretch; align-items: start | end | center | stretch; }
属性对应如下:
start:对齐单元格的起始边缘 end:对齐单元格的结束边缘 center:单元格内部居中 stretch:拉伸,占满单元格的整个宽度(默认值)
place-items属性是align-items属性和justify-items属性的合并简写形式
justify-content属性是整个内容区域在容器里面的水平位置(左中右),align-content属性是整个内容区域的垂直位置(上中下)
justify-content
align-content
.container { justify-content: start | end | center | stretch | space-around | space-between | space-evenly; align-content: start | end | center | stretch | space-around | space-between | space-evenly; }
两个属性的写法完全相同,都可以取下面这些值:
start - 对齐容器的起始边框 end - 对齐容器的结束边框 center - 容器内部居中 space-around - 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与容器边框的间隔大一倍 space-between - 项目与项目的间隔相等,项目与容器边框之间没有间隔 space-evenly - 项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔 stretch - 项目大小没有指定时,拉伸占据整个网格容器
gird-auto
有时候,一些项目的指定位置,在现有网格的外部,就会产生显示网格和隐式网格
比如网格只有3列,但是某一个项目指定在第5行。这时,浏览器会自动生成多余的网格,以便放置项目。超出的部分就是隐式网格
而grid-auto-rows与grid-auto-columns就是专门用于指定隐式网格的宽高
grid-column-start 属性:左边框所在的垂直网格线 grid-column-end 属性:右边框所在的垂直网格线 grid-row-start 属性:上边框所在的水平网格线 grid-row-end 属性:下边框所在的水平网格线
<style> #container{ display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 100px 100px 100px; } .item-1 { grid-column-start: 2; grid-column-end: 4; } </style> <div id="container"> <div class="item item-1">1</div> <div class="item item-2">2</div> <div class="item item-3">3</div> </div>
self类属性 justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。
self
align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。
.item { justify-self: start | end | center | stretch; align-self: start | end | center | stretch; }
可取的值:
start:对齐单元格的起始边缘。 end:对齐单元格的结束边缘。 center:单元格内部居中。 stretch:拉伸,占满单元格的整个宽度(默认值)
容器属性13个:设置行列宽度(2),设置行列间距(3),设置区域名(1),设置行列排序(1),设置项目位置(3),设置整个内容区域的布局(2),多余项目的属性(1)
项目属性6个:设置项目行列起始位置(4),项目水平垂直布局(2)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Grid
Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。
Gird布局由Grid容器和Grid项目构成。Grid项目(网格元素)只能是容器的顶层子元素。
Grid布局属性有两类:
容器属性
display属性
在元素上设置
display:grid
或display:inline-grid
可以创建一个网格容器。grid-template-columns
属性和grid-template-rows
属性对于重复的值可以通过repeat()函数重写:
除了repeat函数外,还有以下关键字:
gap属性
grid-row-gap
属性、grid-column-gap
属性分别设置行间距和列间距。grid-gap
属性是两者的简写形式。grid-template-areas
属性用于定义区域,一个区域由一个或多个单元格组成
上面代码先划分出9个单元格,然后将其定名为a到i的九个区域,分别对应这九个单元格。
多个单元格合并成一个区域:
上面代码将9个单元格分成a、b、c三个区域,如果某些区域不需要利用,则用
.
表示。grid-auto-flow
属性划分好网格后,容器的子元素会按照顺序,自动放置在每一个网格。
顺序就是由grid-auto-flow决定,默认为行,代表"先行后列",即先填满第一行,再开始放入第二行。
当换成列后,排列变成下面的情况:
位置items属性
justify-items
属性设置单元格内容的水平位置(左中右),align-items
属性设置单元格的垂直位置(上中下)。属性对应如下:
place-items属性是align-items属性和justify-items属性的合并简写形式
位置content属性
justify-content
属性是整个内容区域在容器里面的水平位置(左中右),align-content
属性是整个内容区域的垂直位置(上中下)两个属性的写法完全相同,都可以取下面这些值:
gird-auto
属性有时候,一些项目的指定位置,在现有网格的外部,就会产生显示网格和隐式网格
比如网格只有3列,但是某一个项目指定在第5行。这时,浏览器会自动生成多余的网格,以便放置项目。超出的部分就是隐式网格
而grid-auto-rows与grid-auto-columns就是专门用于指定隐式网格的宽高
项目属性
grid-column-start 属性:左边框所在的垂直网格线
grid-column-end 属性:右边框所在的垂直网格线
grid-row-start 属性:上边框所在的水平网格线
grid-row-end 属性:下边框所在的水平网格线
self
类属性justify-self属性设置单元格内容的水平位置(左中右),跟justify-items属性的用法完全一致,但只作用于单个项目。
align-self属性设置单元格内容的垂直位置(上中下),跟align-items属性的用法完全一致,也是只作用于单个项目。
可取的值:
容器属性13个:设置行列宽度(2),设置行列间距(3),设置区域名(1),设置行列排序(1),设置项目位置(3),设置整个内容区域的布局(2),多余项目的属性(1)
项目属性6个:设置项目行列起始位置(4),项目水平垂直布局(2)
The text was updated successfully, but these errors were encountered: