這篇文章主要介紹了 CSS怎么定義一個(gè)網(wǎng)格的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇 CSS怎么定義一個(gè)網(wǎng)格文章都會(huì)有所收獲,下面我們一起來看看吧。
成都創(chuàng)新互聯(lián)主營海棠網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),海棠h5微信平臺(tái)小程序開發(fā)搭建,海棠網(wǎng)站營銷推廣歡迎海棠等地區(qū)企業(yè)咨詢
定義一個(gè)網(wǎng)格
可以給父容器的display
屬性設(shè)置為grid
或者inline-grid
來定義一個(gè)網(wǎng)格。這樣你就可以使用grid-template-columns
和grid-template-rows
屬性來創(chuàng)建一個(gè)網(wǎng)格。
在這個(gè)示例中,創(chuàng)建了一個(gè)三列網(wǎng)格,其中三個(gè)列的列寬是100px
,并且指定列與列之間的間距為10px
。同時(shí)網(wǎng)格具有三行,每行的高度是自動(dòng)的,另外行與行之間的間距是10px
。簡單點(diǎn)說就是一個(gè)三行三列的網(wǎng)格,并且列與列之間,行與行之間的間距都是10px
。
此時(shí)瀏覽器將容器中的子元素自動(dòng)填入到每個(gè)網(wǎng)格單元格中,當(dāng)超過指定的列數(shù)時(shí),網(wǎng)格會(huì)自動(dòng)換行。
看看代碼是怎么完成的:
HTML
復(fù)制代碼
代碼如下:
CSS
復(fù)制代碼
代碼如下:
body {
padding: 50px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto;
}
.box {
background-color: #444;
color: #fff;
font-size: 150%;
padding: 20px;
}
.b,.d,.g,.i {
background-color:red;
}
定義網(wǎng)格的關(guān)鍵代碼:
復(fù)制代碼
代碼如下:
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto;
}
在線案例
從示例效果中可以看出,.wrapper
容器通過display:grid;
定義成網(wǎng)格,并且使用grid-template-columns:100px 10px 100px 10px 100px;
和grid-template-rows:auto 10px auto;
指定了列寬、列間距,行高和行間距等。對(duì)應(yīng)的子元素.a
、.c
、.e
、.f
、.h
和.j
列寬度為100px
(也就是黑色區(qū)域),而.b
、.d
、.g
和.i
是列與列的間距10px
(也就是紅色區(qū)域)。而且當(dāng)子元素在一行填不下時(shí),就會(huì)自動(dòng)換行,如.f
~.j
自動(dòng)換到第二行顯示。
基于網(wǎng)格線的占位區(qū)
網(wǎng)格中的單元格是有網(wǎng)格線劃分出來的,那么在網(wǎng)格布局中,同樣可以使用網(wǎng)格線來給子元素設(shè)置占位區(qū)域?;谏侠谌萜?code>.wrapper下面有十個(gè)子元素.a
~.j
,接下來看如何通過基于網(wǎng)格線來實(shí)現(xiàn)各種在網(wǎng)格布局中的區(qū)域。
對(duì)于網(wǎng)格線,在網(wǎng)格布局中有兩種,一種是列線,另一種是行線。對(duì)應(yīng)的個(gè)網(wǎng)格單元格都有列線起始線(grid-column-start
)、列線終止線(grid-column-end
)和行線起始線(grid-row-start
)、行線終止線(grid-row-end
)。
如上圖所示,紫色的是列網(wǎng)格線,而藍(lán)色的是行網(wǎng)格線,其中高亮大紅的那個(gè)單元格列起始線是line3
,列終止線是line4
,行起始線是line3
,行終止線是line4
。也就是說這四條網(wǎng)格線間的區(qū)域是一個(gè)單元格。
接下來,看一個(gè)示例,如何用網(wǎng)格線實(shí)現(xiàn)單元格占位區(qū)域:
HTML
復(fù)制代碼
代碼如下:
CSS
復(fù)制代碼
代碼如下:
body {
padding: 50px;
}
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto 10px auto;
}
.box {
background-color: #444;
color: #fff;
font-size: 150%;
padding: 20px;
text-align: center;
}
.a{
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
}
.b {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 1;
grid-row-end: 2;
}
.c {
grid-column-start: 5;
grid-column-end: 6;
grid-row-start: 1;
grid-row-end: 2;
}
.d {
grid-column-start: 7;
grid-column-end: 8;
grid-row-start: 1;
grid-row-end: 2;
}
.e {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 3;
grid-row-end: 4;
}
.f {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 3;
grid-row-end: 4;
}
.g {
grid-column-start: 5;
grid-column-end: 6;
grid-row-start: 3;
grid-row-end: 4;
}
.h {
grid-column-start: 7;
grid-column-end: 8;
grid-row-start: 3;
grid-row-end: 4;
}
.i {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 5;
grid-row-end: 6;
}
.j {
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 5;
grid-row-end: 6;
}
在線案例
這種方式可以讓你的子元素.a
~.b
定位在任何位置,比如說,你現(xiàn)在想要.a
和.f
對(duì)換,那么很簡單就能實(shí)現(xiàn):
復(fù)制代碼
代碼如下:
.a{
grid-column-start: 3;
grid-column-end: 4;
grid-row-start: 3;
grid-row-end: 4;
background:red;
}
.f {
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
background:orange;
}
網(wǎng)格線簡寫
前面兩個(gè)示例向大家演示了如何用網(wǎng)格線實(shí)現(xiàn)布局,可以說是簡單方便,唯一就是寫代碼麻煩,要什么grid-column-start
、grid-column-end
等等。其實(shí)有一種簡寫方式,可以讓你不再痛苦。
網(wǎng)格線的簡寫方式,其實(shí)就是grid-column
和grid-row
的start
與end
值合并在一起,兩者之間用/
來分隔。比如:
復(fù)制代碼
代碼如下:
.a{
grid-column-start: 1;
grid-column-end: 2;
grid-row-start: 1;
grid-row-end: 2;
}
可以寫成:
復(fù)制代碼
代碼如下:
.a{
grid-column: 1 / 2;
grid-row: 1 / 2;
}
這樣一來,上例的代碼,我們就可以換成簡寫方式:
復(fù)制代碼
代碼如下:
.a{
grid-column: 1 / 2;
grid-row: 1 / 2;
}
.b {
grid-column: 3 / 4;
grid-row: 1 / 2;
}
.c {
grid-column: 5 / 6;
grid-row: 1 / 2;
}
.d {
grid-column: 7 / 8;
grid-row: 1 / 2;
}
.e {
grid-column: 1 / 2;
grid-row: 3 / 4;
}
.f {
grid-column: 3 / 4;
grid-row: 3 / 4;
}
.g {
grid-column: 5 / 6;
grid-row: 3 / 4;
}
.h {
grid-column: 7 / 8;
grid-row: 3 / 4;
}
.i {
grid-column: 1 / 2;
grid-row: 5 / 6;
}
.j {
grid-column: 3 / 4;
grid-row: 5 / 6;
}
在CSS Grid Layout中有一個(gè)關(guān)鍵東東,網(wǎng)格區(qū)域grid-area
。網(wǎng)格區(qū)域他是由四條網(wǎng)格線組成的一個(gè)空間,簡單點(diǎn)說,一個(gè)網(wǎng)格單元格也是一個(gè)網(wǎng)格區(qū)域(因?yàn)樗彩怯兴臈l網(wǎng)格線組成的一個(gè)空間),多個(gè)單元格合并在一起也是一個(gè)網(wǎng)格區(qū)域。這樣一來,要實(shí)現(xiàn)上例的效果,還可以使用網(wǎng)格區(qū)域grid-area
來完成。
在具體做案例之前,先簡單的了解,網(wǎng)格區(qū)域是由哪幾條網(wǎng)格線組成。組成網(wǎng)格區(qū)域的網(wǎng)格線順序是row-start/column-start/row-end/column-end
。每個(gè)網(wǎng)格線之間也是使用/
來分隔。
接下來將上例使用網(wǎng)格區(qū)域改造一下,改造之后的樣式代碼如下:
復(fù)制代碼
代碼如下:
.wrapper {
display: grid;
grid-template-columns: 100px 10px 100px 10px 100px 10px 100px;
grid-template-rows: auto 10px auto 10px auto;
}
.a{
grid-area: 1 / 1 / 2 / 2;
}
.b {
grid-area: 1 / 3 / 2 /4;
}
.c {
grid-area: 1 / 5 / 2 / 6;
}
.d {
grid-area: 1 / 7 / 2 / 8;
}
.e {
grid-area: 3 / 1 / 4 / 2;
}
.f {
grid-area: 3 / 3 / 4 / 4;
}
.g {
grid-area: 3 / 5 / 4 / 6;
}
.h {
grid-area: 3 / 7 / 4 / 8;
}
.i {
grid-area: 5 / 1 / 6 / 2;
}
.j {
grid-area: 5 / 3 / 6 / 4;
}
關(guān)于“ CSS怎么定義一個(gè)網(wǎng)格”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“ CSS怎么定義一個(gè)網(wǎng)格”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。