精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網

17站長網 首頁 編程教程 CSS3教程 查看內容

Grid 布局簡介

Grid 與 Flex 布局有一定的相似性,但是功能更加強大,學習起來也有不少難度,不過相信下面的內容會幫你更快的掌握 Grid。

1. 官方定義

通過設置 display: grid; 可以定義一個 CSS 網格。然后使用 grid-template-rows 和 grid-template-columns 屬性來定義網格的 columns 和 rows。
使用這些屬性定義的網格被描述為 顯式網格 (explicit grid)。
參考文獻:MDN

2. 解釋

Grid 是一個二維網格布局,它有行 grid-template-rows (橫排)、 列 grid-template-columns(豎排),內部的項目就分布在其中,而網格線就是行和列劃分出來的。

基本屬于解釋:

容器:上面代碼中,最外層的<div>元素demo就是容器。
項目:內層的三個<div>元素item就是項目。
行:把 row 即橫向稱為行,
列:把column即縱向稱為列。
單元格:它們的交叉區域cell 也就是單元格。
網格線:grid line網格線就是由行和列劃分出來的。

3. 語法

  1. 塊級的網格。

.demo{
    display:grid
}
  1. 內聯級的網格。

.demo{
    display:inline-grid;
}

容器包含屬性如下

屬性名說明
grid-template-columnslength列和每列寬度
grid-template-rowslength行和每行的高度
grid-row-gaplength行和行之間的距離
grid-column-gaplength列與列之間距離
grid-gaprow column行、列間距的合并寫法
grid-template-areasstring用來指定區域
grid-auto-flowrow | column默認是 row ,用來指定排列優先級
justify-itemsstart | end | center | stretch水平方向內容的位置
align-itemsstart | end | center | stretch垂直方向內容的位置
place-itemsalign justify垂直和水平位置合并寫法
justify-contentstart | end | center | stretch | space-around | space-between | space-evenly水平方向整個內容區域的位置
align-contentstart | end | center | stretch | space-around | space-between | space-evenly垂直方向整個內容區域的位置
place-contentalign justify垂直和水平方向的合并寫法
grid-auto-columnslength多于的網格列寬定義
grid-auto-rowslength多于的網格行高的定義

grid-template 是 grid-template-columns 、grid-template-rows、 grid-template-areas 縮寫。

grid 是 grid-template-rows、grid-template-columns、grid-template-areas、 grid-auto-rows、grid-auto-columns、grid-auto-flow的合并縮寫。

提示:gird 屬性很復雜因此不推薦 grid 的縮寫

項目包含屬性介紹

屬性名說明
grid-column-startnumber | areaName | span number項目開始位置在左邊框所在的第幾根垂直網格線
grid-column-endnumber | areaName | span number項目開始位置在右邊框所在的第幾根垂直網格線
grid-row-startnumber | areaName | span number項目開始位置在上邊框所在的第幾根水平網格線
grid-row-endnumber | areaName | span number項目開始位置在下邊框所在的第幾根水平網格線
grid-columnnumber / numbergrid-column-start 和 grid-column-end 的合并
grid-areaareaName指定項目放在哪一個區域
justify-selfstart | end | center | stretch單元格內容的水平方向位置
align-selfstart | end | center | stretch單元格內容的垂直方向位置
place-selfalign-self justify-self單元格內容的垂直和水平位置縮寫

4. 兼容性

IEEdgeFirefoxChromeSafariOperaiosandroid
No16+52+57+10.1+44+10.3+81

5. 實例

本小節暫時不對父容器和子容器內的屬性進行詳細的實例使用展示,僅對 display 屬性進行效果區分,可以從下一小節開始其他內容的學習。

  1. 創建一個塊級的 Gird 布局。

<div class="demo">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
</div>

通過下面的設置:

.demo{
    display: grid;
    grid-template-columns:px px;
    grid-template-rows:px px;
    border:px solid #eee
}
.item:nth-of-type(1){
    background: red;
}
.item:nth-of-type(2){
    background: green;
}
.item:nth-of-type(3){
    background: purple;
}

效果圖

編程之家

塊級 Grid 布局效果圖
<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .demo{
            display: grid;
            grid-template-columns:px px;
            grid-template-rows:px px;
            border:px solid #eee
        }
        .item:nth-of-type(1){
            background: red;
        }
        .item:nth-of-type(2){
            background: green;
        }
        .item:nth-of-type(3){
            background: purple;
        }
    </style>
</head>
<body>
    <div class="demo">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
    </div>
    網學習
    
</body>
</html>
  1. 創建內聯級的 Gird 布局。

<div class="demo">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
</div>    
網學習
.demo{
    display: inline-grid;
    grid-template-columns:px px;
    grid-template-rows:px px;
    border:px solid #eee
}
.item:nth-of-type(1){
    background: red;
}
.item:nth-of-type(2){
    background: green;
}
.item:nth-of-type(3){
    background: purple;
}

效果圖

編程之家

內聯 Grid 布局效果圖
<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .demo{
            display: inline-grid;
            grid-template-columns:px px;
            grid-template-rows:px px;
            border:px solid #eee
        }
        .item:nth-of-type(1){
            background: red;
        }
        .item:nth-of-type(2){
            background: green;
        }
        .item:nth-of-type(3){
            background: purple;
        }
    </style>
</head>
<body>
    <div class="demo">
        <div class="item">1</div>
        <div class="item">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
    </div>    
    網學習
    
</body>
</html>

6. 小結

  1. Grid 布局是二維布局原因就是項目所在的單元格是由行和列產生的。

  2. 網格線的開始位置在容器的最頂端和最左邊。

  3. 使用區域命名之后會影響網格線的名稱會變成 區域名-star、區域名-end

  4. 可以把 columns 理解為高度,rows理解為寬度這樣便于理解。

返回頂部
主站蜘蛛池模板: 国产精品欧美在线 | 永久免费视频v片www | 国产精品美女www爽爽爽视频 | aa毛片| 免费黄色三级 | 特黄色一级毛片 | 午夜视频精品 | 一本一本大道香蕉久在线精品 | 免费一级网站 | 六月丁香啪啪 | 一区二区高清在线 | 亚洲夜色 | 91sex在线观看免费 | 免费a级| 婷婷射图| 午夜精品同性女女 | 国产成人99久久亚洲综合精品 | 久久久9999久久精品小说 | 天天躁夜夜躁很很躁2020 | aa级毛片毛片免费观看久 | 国产欧美精品一区二区三区-老狼 | 午夜一级毛片不卡 | 色噜噜狠狠一区二区三区 | 成人精品一区二区三区校园激情 | 一级免费黄色片 | 一道精品一区二区三区 | 日本黄色绿像 | 国产视频你懂得 | 欧美一区二区三区视频在线观看 | 亚洲国产欧美国产第一区二区三区 | 免费视频成人国产精品网站 | 黄色录像一级片 | 三区在线观看 | 欧美亚洲黄色片 | 国产精品自在线拍 | 国产黄色片在线播放 | 国产在线干 | 激情视频网站在线观看 | 天天拍拍天天爽免费视频 | 久久福利资源网站免费看 | 伊在人香蕉99久久 |