GridLayout網(wǎng)格布局

網(wǎng)格術(shù)語

網(wǎng)格線(Grid Lines)
網(wǎng)格線組成了網(wǎng)格,他是網(wǎng)格的水平和垂直的分界線。一個網(wǎng)格線存在行或列的兩側(cè)。我們可以引用它的數(shù)目或者定義的網(wǎng)格線名稱。


上圖突出顯示的紅線就是第二列的網(wǎng)格線(line2)
  • 網(wǎng)格軌道(Grid Track)
    網(wǎng)格軌道是就是相鄰兩條網(wǎng)格線之間的空間,就好比表格中行或列。所在在網(wǎng)格中其分為grid column和grid row。每個網(wǎng)格軌道可以設(shè)置一個大小,用來控制寬度或高度。


    圖中突出顯示的就是行線line2和line3之間組成的網(wǎng)格軌道
  • 網(wǎng)格單元格(Grid Cell)
    網(wǎng)格單元格是指四條網(wǎng)格線之間的空間。所以它是最小的單位,就像表格中的單元格。
圖中突出顯示的單元格是由行線line2、line3和列線line2、line3組成的
  • 網(wǎng)格區(qū)域(Grid Area)
    網(wǎng)格區(qū)域是由任意四條網(wǎng)格線組成的空間,所以他可能包含一個或多個單元格。相當(dāng)于表格中的合并單元格之后的區(qū)域。


    圖中突出顯示的網(wǎng)格區(qū)域是行線line1、line3和列線line2、line4之間的區(qū)域,其主要包括了四個網(wǎng)格單元格。
  • 網(wǎng)格容器(Grid Containers)
    通過使用display屬性給元素顯式設(shè)置了屬性值grid或inline-grid,此時這個元素將自動變成網(wǎng)格容器。這個類似于flexbox一樣,將元素設(shè)置設(shè)置為display:flex,元素將自動變成彈性盒模型。
  • 網(wǎng)格單元格順序(order)
    網(wǎng)格單元格順序和Flexbox模塊一樣,通過order屬性來對網(wǎng)格單父元格進(jìn)行順序重排。

定義一個網(wǎng)格

.wrapper {
            display: grid;
            grid-template-columns: 100px 10px 100px 10px 100px 10px 100px;//列寬 列間距 列寬 列間距 列寬 列間距 列寬
            grid-template-rows: auto 10px auto 10px auto;//行高 行間距 行高 行間距 行高
        }

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

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

<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>
body {
  padding: 50px;
  }
.wrapper {
  display: grid;
  grid-template-columns: 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: 1/2;
  grid-row: 3/4;
}
//以下為網(wǎng)格區(qū)域?qū)懛╣rid-area:row-start/column-start/row-end/column-end
.d { 
  grid-area: 3/3/4/4
}

.e { 
  grid-area:5/1/6/2
}

如下圖所示:

gridLayout1.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 簡介 CSS Grid布局 (又名"網(wǎng)格"),是一個基于二維網(wǎng)格布局的系統(tǒng),旨在改變我們基于網(wǎng)格設(shè)計的用戶界面方式...
    咕咚咚bells閱讀 2,553評論 0 4
  • 簡介CSS網(wǎng)格布局(又稱“網(wǎng)格”),是一種二維網(wǎng)格布局系統(tǒng)。CSS在處理網(wǎng)頁布局方面一直做的不是很好。一開始我們用...
    _leonlee閱讀 65,191評論 25 173
  • 前言 溫馨提示:本文較長,圖片較多,本來是想寫一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實(shí)現(xiàn)...
    sunshine小小倩閱讀 3,173評論 0 59
  • 原文地址 注:此文是我翻譯的第一篇技術(shù)文章。適合有一定CSS原生網(wǎng)格布局使用經(jīng)驗(yàn)的開發(fā)者(讀前需要先去了解一下原生...
    我不叫沒耐性閱讀 770評論 0 2
  • CSS Grid現(xiàn)在已經(jīng)被W3C納入到CSS3的一個布局模塊當(dāng)中,被稱為**CSS Grid Layout Mod...
    oyakuki閱讀 2,032評論 0 0