Grid布局

CSS Grid(網(wǎng)格) 布局(又稱為 “Grid(網(wǎng)格)” ),是一個二維的基于網(wǎng)格的布局系統(tǒng)它的目標是完全改變我們基于網(wǎng)格的用戶界面的布局方式熊镣。CSS 一直用來布局我們的網(wǎng)頁,但一直以來都存在這樣或那樣的問題。一開始我們用表格(table),然后是浮動(float)灾常,再是定位(postion)和內(nèi)嵌塊(inline-block),但是所有這些方法本質(zhì)上都是只是 hack 而已铃拇,并且遺漏了很多重要的功能(例如垂直居中)钞瀑。Flexbox 的出現(xiàn)很大程度上改善了我們的布局方式,但它的目的是為了解決更簡單的一維布局慷荔,而不是復雜的二維布局(實際上 Flexbox 和 Grid 能結(jié)合在一起工作雕什,而且配合得非常好)。Grid(網(wǎng)格) 布局是第一個專門為解決布局問題而創(chuàng)建的 CSS 模塊.

父元素 網(wǎng)格容器(Grid Container) 屬性

display

  • grid :生成一個塊級網(wǎng)格
  • inline-grid :生成一個內(nèi)聯(lián)網(wǎng)格
  • subgrid :如果你的網(wǎng)格容器本身是另一個網(wǎng)格的網(wǎng)格項(即嵌套網(wǎng)格)显晶,你可以使用這個屬性來表示
    你希望它的行/列的大小繼承自它的父級網(wǎng)格容器贷岸,而不是自己指定的。

grid-template-columns / grid-template-rows

用來定義網(wǎng)格的列和行磷雇。這些值表示 網(wǎng)格大小偿警。

  • <track-size>: 可以是長度值,百分比唯笙,或者等份網(wǎng)格容器中可用空間(使用 fr 單位)
  • <line-name>:你可以選擇的任意名稱

grid-template-areas

通過引用 grid-area 屬性指定的 網(wǎng)格區(qū)域(Grid Area) 名稱來定義網(wǎng)格模板螟蒸。重復網(wǎng)格區(qū)域的名稱導致內(nèi)容跨越這些單元格。一個點號(.)代表一個空的網(wǎng)格單元崩掘。這個語法本身可視作網(wǎng)格的可視化結(jié)構(gòu)七嫌。

  • <grid-area-name>:由網(wǎng)格項的 grid-area 指定的網(wǎng)格區(qū)域名稱
  • .(點號) :代表一個空的網(wǎng)格單元
    
  • none:不定義網(wǎng)格區(qū)域

grid-template

用于定義 grid-template-rows ,grid-template-columns苞慢,grid-template-areas縮寫 (shorthand) 屬性

  • none:將所有三個屬性設(shè)置為其初始值
  • subgrid:將grid-template-rows诵原,grid-template-columns的值設(shè)為 subgrid,grid-template-areas設(shè)為初始值
  • <grid-template-rows> / <grid-template-columns>:將 grid-template-columns和 grid-template-rows 設(shè)置為相應地特定的值,并且設(shè)置grid-template-areas為none

grid-column-gap / grid-row-gap

指定網(wǎng)格線(grid lines)的大小皮假。你可以把它想象為設(shè)置列/行之間間距的寬度鞋拟。

  • <line-size> :長度值

grid-gap

grid-column-gap 和 grid-row-gap 的縮寫

  • <grid-row-gap> <grid-column-gap>:長度值

justify-items

沿著 行軸線(row axis) 對齊 網(wǎng)格項(grid items) 內(nèi)的內(nèi)容(相反的屬性是 align-items沿著列軸線對齊)骂维。該值適用于容器內(nèi)的所有網(wǎng)格項惹资。

  • start:將內(nèi)容對齊到網(wǎng)格區(qū)域(grid area)的左側(cè)
  • end:將內(nèi)容對齊到網(wǎng)格區(qū)域的右側(cè)
  • center:將內(nèi)容對齊到網(wǎng)格區(qū)域的中間(水平居中)
  • stretch:填滿網(wǎng)格區(qū)域?qū)挾龋J值)

align-items

沿著 列軸線(column axis) 對齊 網(wǎng)格項(grid items) 內(nèi)的內(nèi)容(相反的屬性是 justify-items沿著行軸線對齊)。該值適用于容器內(nèi)的所有網(wǎng)格項航闺。

  • start:將內(nèi)容對齊到網(wǎng)格區(qū)域(grid area)的頂部
  • end:將內(nèi)容對齊到網(wǎng)格區(qū)域的底部
  • center:將內(nèi)容對齊到網(wǎng)格區(qū)域的中間(垂直居中)
  • stretch:填滿網(wǎng)格區(qū)域高度(默認值)

justify-content

有時褪测,你的網(wǎng)格合計大小可能小于其 網(wǎng)格容器(grid container) 大小。 如果你的所有 網(wǎng)格項(grid items) 都使用像 px 這樣的非靈活單位設(shè)置大小潦刃,在這種情況下侮措,您可以設(shè)置網(wǎng)格容器內(nèi)的網(wǎng)格的對齊方式。 此屬性沿著 行軸線(row axis) 對齊網(wǎng)格(相反的屬性是 align-content乖杠,沿著列軸線對齊網(wǎng)格)分扎。

  • start:將網(wǎng)格對齊到 網(wǎng)格容器(grid container) 的左邊
  • end:將網(wǎng)格對齊到 網(wǎng)格容器 的右邊
  • center:將網(wǎng)格對齊到 網(wǎng)格容器 的中間(水平居中)
  • stretch:調(diào)整 網(wǎng)格項(grid items) 的寬度,允許該網(wǎng)格填充滿整個 網(wǎng)格容器 的寬度
  • space-around:在每個網(wǎng)格項之間放置一個均勻的空間胧洒,左右兩端放置一半的空間
  • space-between:在每個網(wǎng)格項之間放置一個均勻的空間畏吓,左右兩端沒有空間
  • space-evenly:在每個柵格項目之間放置一個均勻的空間,左右兩端放置一個均勻的空間

align-content

網(wǎng)格合計大小可能小于其 網(wǎng)格容器(grid container) 大小卫漫。 如果你的所有 網(wǎng)格項(grid items) 都使用像 px 這樣的非靈活單位設(shè)置大小菲饼,在這種情況下,您可以設(shè)置網(wǎng)格容器內(nèi)的網(wǎng)格的對齊方式列赎。 此屬性沿著 列軸線(column axis) 對齊網(wǎng)格(相反的屬性是 justify-content宏悦,沿著行軸線對齊網(wǎng)格)。

  • start:將網(wǎng)格對齊到 網(wǎng)格容器(grid container) 的頂部
  • end:將網(wǎng)格對齊到 網(wǎng)格容器 的底部
  • center:將網(wǎng)格對齊到 網(wǎng)格容器 的中間(垂直居中)
  • stretch:調(diào)整 網(wǎng)格項(grid items) 的高度包吝,允許該網(wǎng)格填充滿整個 網(wǎng)格容器 的高度
  • space-around:在每個網(wǎng)格項之間放置一個均勻的空間饼煞,上下兩端放置一半的空間
  • space-between:在每個網(wǎng)格項之間放置一個均勻的空間,上下兩端沒有空間
  • space-evenly:在每個柵格項目之間放置一個均勻的空間诗越,上下兩端放置一個均勻的空間

grid-auto-columns / grid-auto-rows

指定任何自動生成的網(wǎng)格軌道(grid tracks)(又名隱式網(wǎng)格軌道)的大小砖瞧。在你明確定位的行或列(通過 grid-template-rows/ grid-template-columns),超出定義的網(wǎng)格范圍時掺喻,隱式網(wǎng)格軌道被創(chuàng)建了芭届。

  • <track-size>:可以是長度值,百分比感耙,或者等份網(wǎng)格容器中可用空間(使用 fr 單位)

子元素 網(wǎng)格項(Grid Items) 屬性

grid-column-start / grid-column-end / grid-row-start / grid-row-end

通過指定 網(wǎng)格線(grid lines) 來確定網(wǎng)格內(nèi) 網(wǎng)格項(grid item) 的位置褂乍。 grid-column-start / grid-row-start是網(wǎng)格項目開始的網(wǎng)格線,grid-column-end / grid-row-end是網(wǎng)格項結(jié)束的網(wǎng)格線即硼。

  • <line> :可以是一個數(shù)字引用一個編號的網(wǎng)格線逃片,或者一個名字來引用一個命名的網(wǎng)格線
  • span <number> :該網(wǎng)格項將跨越所提供的網(wǎng)格軌道數(shù)量
  • span <name> :該網(wǎng)格項將跨越到它與提供的名稱位置
  • auto :表示自動放置,自動跨度,默認會擴展一個網(wǎng)格軌道的寬度或者高度

grid-column / grid-row

分別為 grid-column-start+ grid-column-end和 grid-row-start+ grid-row-end 的縮寫形式

  • <start-line> / <end-line>:每個網(wǎng)格項都接受所有相同的值褥实,作為普通書寫的版本呀狼,包括跨度

grid-area

為網(wǎng)格項提供一個名稱,以便可以 被使用網(wǎng)格容器 grid-template-areas屬性創(chuàng)建的模板進行引用损离。 另外哥艇,這個屬性可以用作grid-row-start + grid-column-start+ grid-row-end+ grid-column-end的縮寫。

  • <name>:你所選的名稱
  • <row-start> / <column-start> / <row-end> / <column-end>:數(shù)字或分隔線名稱

justify-self

沿著 行軸線(row axis) 對齊 網(wǎng)格項 內(nèi)的內(nèi)容( 相反的屬性是 align-self僻澎,沿著列軸線(column axis)對齊)貌踏。此值適用于單個網(wǎng)格項內(nèi)的內(nèi)容。

  • start:將內(nèi)容對齊到網(wǎng)格區(qū)域的左側(cè)
  • end:將內(nèi)容對齊到網(wǎng)格區(qū)域的右側(cè)
  • center:將內(nèi)容對齊到網(wǎng)格區(qū)域的中間(水平居中)
  • stretch:填充整個網(wǎng)格區(qū)域的寬度(這是默認值)

align-self

沿著 列軸線(column axis) 對齊 網(wǎng)格項 內(nèi)的內(nèi)容( 相反的屬性是 justify-self窟勃,沿著 行軸線(row axis) 對齊)祖乳。此值適用于單個網(wǎng)格項內(nèi)的內(nèi)容。

  • start:將內(nèi)容對齊到網(wǎng)格區(qū)域的頂部
  • end:將內(nèi)容對齊到網(wǎng)格區(qū)域的底部
  • center:將內(nèi)容對齊到網(wǎng)格區(qū)域的中間(垂直居中)
  • stretch:填充整個網(wǎng)格區(qū)域的高度(這是默認值)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秉氧,一起剝皮案震驚了整個濱河市眷昆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌汁咏,老刑警劉巖亚斋,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梆暖,居然都是意外死亡伞访,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門轰驳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厚掷,“玉大人,你說我怎么就攤上這事级解∶昂冢” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵勤哗,是天一觀的道長抡爹。 經(jīng)常有香客問我,道長芒划,這世上最難降的妖魔是什么冬竟? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮民逼,結(jié)果婚禮上泵殴,老公的妹妹穿的比我還像新娘。我一直安慰自己拼苍,他們只是感情好笑诅,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般吆你。 火紅的嫁衣襯著肌膚如雪弦叶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天妇多,我揣著相機與錄音伤哺,去河邊找鬼。 笑死砌梆,一個胖子當著我的面吹牛默责,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咸包,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杖虾!你這毒婦竟也來了烂瘫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤奇适,失蹤者是張志新(化名)和其女友劉穎坟比,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚷往,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡葛账,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了皮仁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片籍琳。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贷祈,靈堂內(nèi)的尸體忽然破棺而出趋急,到底是詐尸還是另有隱情,我是刑警寧澤势誊,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布呜达,位于F島的核電站,受9級特大地震影響粟耻,放射性物質(zhì)發(fā)生泄漏查近。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一挤忙、第九天 我趴在偏房一處隱蔽的房頂上張望霜威。 院中可真熱鬧,春花似錦饭玲、人聲如沸侥祭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矮冬。三九已至谈宛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胎署,已是汗流浹背吆录。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琼牧,地道東北人恢筝。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像巨坊,于是被迫代替她去往敵國和親撬槽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

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