溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS怎么定義一個網(wǎng)格

發(fā)布時間:2022-03-23 13:57:08 來源:億速云 閱讀:184 作者:iii 欄目:web開發(fā)

這篇文章主要介紹了 CSS怎么定義一個網(wǎng)格的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 CSS怎么定義一個網(wǎng)格文章都會有所收獲,下面我們一起來看看吧。

定義一個網(wǎng)格

可以給父容器的display屬性設置為grid或者inline-grid來定義一個網(wǎng)格。這樣你就可以使用grid-template-columnsgrid-template-rows屬性來創(chuàng)建一個網(wǎng)格。

在這個示例中,創(chuàng)建了一個三列網(wǎng)格,其中三個列的列寬是100px,并且指定列與列之間的間距為10px。同時網(wǎng)格具有三行,每行的高度是自動的,另外行與行之間的間距是10px。簡單點說就是一個三行三列的網(wǎng)格,并且列與列之間,行與行之間的間距都是10px。

此時瀏覽器將容器中的子元素自動填入到每個網(wǎng)格單元格中,當超過指定的列數(shù)時,網(wǎng)格會自動換行。

CSS怎么定義一個網(wǎng)格

看看代碼是怎么完成的:

HTML

復制代碼

代碼如下:

<font face="Courier New"><font face="Arial">
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
</div></font>
</font>

CSS

復制代碼

代碼如下:


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)格的關鍵代碼:

復制代碼

代碼如下:


.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;指定了列寬、列間距,行高和行間距等。對應的子元素.a、.c、.e.f、.h.j列寬度為100px(也就是黑色區(qū)域),而.b、.d、.g.i是列與列的間距10px(也就是紅色區(qū)域)。而且當子元素在一行填不下時,就會自動換行,如.f.j自動換到第二行顯示。

基于網(wǎng)格線的占位區(qū)

網(wǎng)格中的單元格是有網(wǎng)格線劃分出來的,那么在網(wǎng)格布局中,同樣可以使用網(wǎng)格線來給子元素設置占位區(qū)域?;谏侠?,在容器.wrapper下面有十個子元素.a~.j,接下來看如何通過基于網(wǎng)格線來實現(xiàn)各種在網(wǎng)格布局中的區(qū)域。

對于網(wǎng)格線,在網(wǎng)格布局中有兩種,一種是列線,另一種是行線。對應的個網(wǎng)格單元格都有列線起始線(grid-column-start)、列線終止線(grid-column-end)和行線起始線(grid-row-start)、行線終止線(grid-row-end)。

CSS怎么定義一個網(wǎng)格

如上圖所示,紫色的是列網(wǎng)格線,而藍色的是行網(wǎng)格線,其中高亮大紅的那個單元格列起始線是line3,列終止線是line4,行起始線是line3,行終止線是line4。也就是說這四條網(wǎng)格線間的區(qū)域是一個單元格。

接下來,看一個示例,如何用網(wǎng)格線實現(xiàn)單元格占位區(qū)域:

HTML

復制代碼

代碼如下:


<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
</div>

CSS

復制代碼

代碼如下:


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;
}

CSS怎么定義一個網(wǎng)格

在線案例

這種方式可以讓你的子元素.a~.b定位在任何位置,比如說,你現(xiàn)在想要.a.f對換,那么很簡單就能實現(xiàn):

復制代碼

代碼如下:

<font face="Courier New">
<font face="Arial">.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;
}</font>
</font>

網(wǎng)格線簡寫

前面兩個示例向大家演示了如何用網(wǎng)格線實現(xiàn)布局,可以說是簡單方便,唯一就是寫代碼麻煩,要什么grid-column-startgrid-column-end等等。其實有一種簡寫方式,可以讓你不再痛苦。

網(wǎng)格線的簡寫方式,其實就是grid-columngrid-rowstartend值合并在一起,兩者之間用/來分隔。比如:

復制代碼

代碼如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column-start: 1;
grid-column-end: 2; 
grid-row-start: 1;
grid-row-end: 2;
}</font>
</font>

可以寫成:

復制代碼

代碼如下:

<font face="Courier New">
<font face="Arial">.a{
grid-column: 1 / 2; 
grid-row: 1 / 2;
}</font>
</font>

這樣一來,上例的代碼,我們就可以換成簡寫方式:

復制代碼

代碼如下:

<font face="Courier New">
<font face="Arial">.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;
}</font>
</font>

在CSS Grid Layout中有一個關鍵東東,網(wǎng)格區(qū)域grid-area。網(wǎng)格區(qū)域他是由四條網(wǎng)格線組成的一個空間,簡單點說,一個網(wǎng)格單元格也是一個網(wǎng)格區(qū)域(因為他也是有四條網(wǎng)格線組成的一個空間),多個單元格合并在一起也是一個網(wǎng)格區(qū)域。這樣一來,要實現(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。每個網(wǎng)格線之間也是使用/來分隔。

接下來將上例使用網(wǎng)格區(qū)域改造一下,改造之后的樣式代碼如下:

復制代碼

代碼如下:

<font face="Courier New">
<font face="Arial">.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;
}</font>
</font>

關于“ CSS怎么定義一個網(wǎng)格”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“ CSS怎么定義一個網(wǎng)格”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

css
AI