一寡痰、概述
網(wǎng)格布局(Grid)是最強(qiáng)大的 CSS 布局方案朋鞍。
它將網(wǎng)頁(yè)劃分成一個(gè)個(gè)網(wǎng)格,可以任意組合不同的網(wǎng)格朝巫,做出各種各樣的布局鸿摇。以前,只能通過復(fù)雜的 CSS 框架達(dá)到的效果劈猿,現(xiàn)在瀏覽器內(nèi)置了拙吉。
上圖這樣的布局潮孽,就是 Grid 布局的拿手好戲。
Grid 布局與?Flex 布局有一定的相似性筷黔,都可以指定容器內(nèi)部多個(gè)項(xiàng)目的位置往史。但是,它們也存在重大區(qū)別佛舱。
Flex 布局是軸線布局椎例,只能指定"項(xiàng)目"針對(duì)軸線的位置,可以看作是一維布局名眉。Grid 布局則是將容器劃分成"行"和"列"粟矿,產(chǎn)生單元格,然后指定"項(xiàng)目所在"的單元格损拢,可以看作是二維布局陌粹。Grid 布局遠(yuǎn)比 Flex 布局強(qiáng)大。
二福压、基本概念
學(xué)習(xí) Grid 布局之前掏秩,需要了解一些基本概念。
2.1 容器和項(xiàng)目
采用網(wǎng)格布局的區(qū)域荆姆,稱為"容器"(container)蒙幻。容器內(nèi)部采用網(wǎng)格定位的子元素,稱為"項(xiàng)目"(item)胆筒。
<div><div><p>1</p></div><div><p>2</p></div><div><p>3</p></div></div>
上面代碼中邮破,最外層的<div>元素就是容器,內(nèi)層的三個(gè)<div>元素就是項(xiàng)目仆救。
注意:項(xiàng)目只能是容器的頂層子元素抒和,不包含項(xiàng)目的子元素,比如上面代碼的<p>元素就不是項(xiàng)目彤蔽。Grid 布局只對(duì)項(xiàng)目生效摧莽。
2.2 行和列
容器里面的水平區(qū)域稱為"行"(row),垂直區(qū)域稱為"列"(column)顿痪。
上圖中镊辕,水平的深色區(qū)域就是"行",垂直的深色區(qū)域就是"列"蚁袭。
2.3 單元格
行和列的交叉區(qū)域征懈,稱為"單元格"(cell)。
正常情況下揩悄,n行和m列會(huì)產(chǎn)生n x m個(gè)單元格受裹。比如,3行3列會(huì)產(chǎn)生9個(gè)單元格。
2.4 網(wǎng)格線
劃分網(wǎng)格的線棉饶,稱為"網(wǎng)格線"(grid line)。水平網(wǎng)格線劃分出行镇匀,垂直網(wǎng)格線劃分出列照藻。
正常情況下,n行有n + 1根水平網(wǎng)格線汗侵,m列有m + 1根垂直網(wǎng)格線幸缕,比如三行就有四根水平網(wǎng)格線。
上圖是一個(gè) 4 x 4 的網(wǎng)格晰韵,共有5根水平網(wǎng)格線和5根垂直網(wǎng)格線发乔。
三、容器屬性
Grid 布局的屬性分成兩類雪猪。一類定義在容器上面栏尚,稱為容器屬性;另一類定義在項(xiàng)目上面只恨,稱為項(xiàng)目屬性译仗。這部分先介紹容器屬性。
3.1 display 屬性
display: grid指定一個(gè)容器采用網(wǎng)格布局官觅。
div {display:grid;}
上圖是display: grid的效果纵菌。
默認(rèn)情況下,容器元素都是塊級(jí)元素休涤,但也可以設(shè)成行內(nèi)元素咱圆。
div {display:inline-grid;}
上面代碼指定div是一個(gè)行內(nèi)元素,該元素內(nèi)部采用網(wǎng)格布局功氨。
上圖是display: inline-grid的效果序苏。
注意,設(shè)為網(wǎng)格布局以后疑故,容器子元素(項(xiàng)目)的float杠览、display: inline-block、display: table-cell纵势、vertical-align和column-*等設(shè)置都將失效踱阿。
3.2
grid-template-columns 屬性,
grid-template-rows 屬性
容器指定了網(wǎng)格布局以后钦铁,接著就要?jiǎng)澐中泻土腥砩唷rid-template-columns屬性定義每一列的列寬,grid-template-rows屬性定義每一行的行高牛曹。
.container {display:grid;grid-template-columns:100px 100px 100px;grid-template-rows:100px 100px 100px;}
上面代碼指定了一個(gè)三行三列的網(wǎng)格佛点,列寬和行高都是100px。
除了使用絕對(duì)單位,也可以使用百分比超营。
.container {display:grid;grid-template-columns:33.33% 33.33% 33.33%;grid-template-rows:33.33% 33.33% 33.33%;}
(1)repeat()
有時(shí)候鸳玩,重復(fù)寫同樣的值非常麻煩,尤其網(wǎng)格很多時(shí)演闭。這時(shí)不跟,可以使用repeat()函數(shù),簡(jiǎn)化重復(fù)的值米碰。上面的代碼用repeat()改寫如下窝革。
.container {display:grid;grid-template-columns:repeat(3, 33.33%);grid-template-rows:repeat(3, 33.33%);}
repeat()接受兩個(gè)參數(shù),第一個(gè)參數(shù)是重復(fù)的次數(shù)(上例是3)吕座,第二個(gè)參數(shù)是所要重復(fù)的值虐译。
repeat()重復(fù)某種模式也是可以的。
grid-template-columns:repeat(2, 100px 20px 80px);
上面代碼定義了6列吴趴,第一列和第四列的寬度為100px漆诽,第二列和第五列為20px,第三列和第六列為80px史侣。
(2)auto-fill 關(guān)鍵字
有時(shí)拴泌,單元格的大小是固定的,但是容器的大小不確定惊橱。如果希望每一行(或每一列)容納盡可能多的單元格蚪腐,這時(shí)可以使用auto-fill關(guān)鍵字表示自動(dòng)填充。
.container {display:grid;grid-template-columns:repeat(auto-fill, 100px);}
上面代碼表示每列寬度100px税朴,然后自動(dòng)填充回季,直到容器不能放置更多的列。
(3)fr 關(guān)鍵字
為了方便表示比例關(guān)系正林,網(wǎng)格布局提供了fr關(guān)鍵字(fraction 的縮寫泡一,意為"片段")。如果兩列的寬度分別為1fr和2fr觅廓,就表示后者是前者的兩倍鼻忠。
.container {display:grid;grid-template-columns:1fr 1fr;}
上面代碼表示兩個(gè)相同寬度的列。
fr可以與絕對(duì)長(zhǎng)度的單位結(jié)合使用杈绸,這時(shí)會(huì)非常方便帖蔓。
.container {display:grid;grid-template-columns:150px 1fr 2fr;}
上面代碼表示,第一列的寬度為150像素瞳脓,第二列的寬度是第三列的一半塑娇。
(4)minmax()
minmax()函數(shù)產(chǎn)生一個(gè)長(zhǎng)度范圍,表示長(zhǎng)度就在這個(gè)范圍之中劫侧。它接受兩個(gè)參數(shù)埋酬,分別為最小值和最大值哨啃。
grid-template-columns:1fr 1fr minmax(100px, 1fr);
上面代碼中,minmax(100px, 1fr)表示列寬不小于100px写妥,不大于1fr拳球。
(5)auto 關(guān)鍵字
auto關(guān)鍵字表示由瀏覽器自己決定長(zhǎng)度。
grid-template-columns:100px auto 100px;
上面代碼中耳标,第二列的寬度醇坝,基本上等于該列單元格的最大寬度,除非單元格內(nèi)容設(shè)置了min-width次坡,且這個(gè)值大于最大寬度。
(6)網(wǎng)格線的名稱
grid-template-columns屬性和grid-template-rows屬性里面画畅,還可以使用方括號(hào)砸琅,指定每一根網(wǎng)格線的名字,方便以后的引用轴踱。
.container {display:grid;grid-template-columns:[c1] 100px [c2] 100px [c3] auto [c4];grid-template-rows:[r1] 100px [r2] 100px [r3] auto [r4];}
上面代碼指定網(wǎng)格布局為3行 x 3列症脂,因此有4根垂直網(wǎng)格線和4根水平網(wǎng)格線。方括號(hào)里面依次是這八根線的名字淫僻。
網(wǎng)格布局允許同一根線有多個(gè)名字诱篷,比如[fifth-line row-5]。
(7)布局實(shí)例
grid-template-columns屬性對(duì)于網(wǎng)頁(yè)布局非常有用雳灵。兩欄式布局只需要一行代碼棕所。
.wrapper {display:grid;grid-template-columns:70% 30%;}
上面代碼將左邊欄設(shè)為70%,右邊欄設(shè)為30%悯辙。
傳統(tǒng)的十二網(wǎng)格布局琳省,寫起來(lái)也很容易。
grid-template-columns:repeat(12, 1fr);
3.3
grid-row-gap 屬性躲撰,
grid-column-gap 屬性针贬,
grid-gap 屬性
grid-row-gap屬性設(shè)置行與行的間隔(行間距),grid-column-gap屬性設(shè)置列與列的間隔(列間距)拢蛋。
.container {grid-row-gap:20px;grid-column-gap:20px;}
上面代碼中桦他,grid-row-gap用于設(shè)置行間距,grid-column-gap用于設(shè)置列間距谆棱。
grid-gap屬性是grid-column-gap和grid-row-gap的合并簡(jiǎn)寫形式快压,語(yǔ)法如下。
grid-gap:<grid-row-gap><grid-column-gap>;
因此础锐,上面一段 CSS 代碼等同于下面的代碼嗓节。
.container {grid-gap:20px 20px;}
如果grid-gap省略了第二個(gè)值,瀏覽器認(rèn)為第二個(gè)值等于第一個(gè)值皆警。
根據(jù)最新標(biāo)準(zhǔn)拦宣,上面三個(gè)屬性名的grid-前綴已經(jīng)刪除,grid-column-gap和grid-row-gap寫成column-gap和row-gap,grid-gap寫成gap鸵隧。
3.4 grid-template-areas 屬性
網(wǎng)格布局允許指定"區(qū)域"(area)绸罗,一個(gè)區(qū)域由單個(gè)或多個(gè)單元格組成。grid-template-areas屬性用于定義區(qū)域豆瘫。
.container {display:grid;grid-template-columns:100px 100px 100px;grid-template-rows:100px 100px 100px;grid-template-areas:'a b c''d e f''g h i';}
上面代碼先劃分出9個(gè)單元格珊蟀,然后將其定名為a到i的九個(gè)區(qū)域,分別對(duì)應(yīng)這九個(gè)單元格外驱。
多個(gè)單元格合并成一個(gè)區(qū)域的寫法如下育灸。
grid-template-areas:'a a a''b b b''c c c';
上面代碼將9個(gè)單元格分成a、b昵宇、c三個(gè)區(qū)域磅崭。
下面是一個(gè)布局實(shí)例。
grid-template-areas:"header header header""main main sidebar""footer footer footer";
上面代碼中瓦哎,頂部是頁(yè)眉區(qū)域header砸喻,底部是頁(yè)腳區(qū)域footer,中間部分則為main和sidebar蒋譬。
如果某些區(qū)域不需要利用割岛,則使用"點(diǎn)"(.)表示。
grid-template-areas:'a . c''d . f''g . i';
上面代碼中犯助,中間一列為點(diǎn)癣漆,表示沒有用到該單元格,或者該單元格不屬于任何區(qū)域也切。
注意扑媚,區(qū)域的命名會(huì)影響到網(wǎng)格線。每個(gè)區(qū)域的起始網(wǎng)格線雷恃,會(huì)自動(dòng)命名為區(qū)域名-start疆股,終止網(wǎng)格線自動(dòng)命名為區(qū)域名-end。
比如倒槐,區(qū)域名為header旬痹,則起始位置的水平網(wǎng)格線和垂直網(wǎng)格線叫做header-start,終止位置的水平網(wǎng)格線和垂直網(wǎng)格線叫做header-end讨越。
3.5 grid-auto-flow 屬性
劃分網(wǎng)格以后两残,容器的子元素會(huì)按照順序,自動(dòng)放置在每一個(gè)網(wǎng)格把跨。默認(rèn)的放置順序是"先行后列"人弓,即先填滿第一行,再開始放入第二行着逐,即下圖數(shù)字的順序崔赌。
這個(gè)順序由grid-auto-flow屬性決定意蛀,默認(rèn)值是row,即"先行后列"健芭。也可以將它設(shè)成column县钥,變成"先列后行"。
grid-auto-flow:column;
上面代碼設(shè)置了column以后慈迈,放置順序就變成了下圖若贮。
grid-auto-flow屬性除了設(shè)置成row和column,還可以設(shè)成row dense和column dense痒留。這兩個(gè)值主要用于谴麦,某些項(xiàng)目指定位置以后,剩下的項(xiàng)目怎么自動(dòng)放置伸头。
下面的例子讓1號(hào)項(xiàng)目和2號(hào)項(xiàng)目各占據(jù)兩個(gè)單元格细移,然后在默認(rèn)的grid-auto-flow: row情況下,會(huì)產(chǎn)生下面這樣的布局熊锭。
上圖中,1號(hào)項(xiàng)目后面的位置是空的雪侥,這是因?yàn)?號(hào)項(xiàng)目默認(rèn)跟著2號(hào)項(xiàng)目碗殷,所以會(huì)排在2號(hào)項(xiàng)目后面。
現(xiàn)在修改設(shè)置速缨,設(shè)為row dense锌妻,表示"先行后列",并且盡可能緊密填滿旬牲,盡量不出現(xiàn)空格仿粹。
grid-auto-flow:row dense;
上面代碼的效果如下。
上圖會(huì)先填滿第一行原茅,再填滿第二行吭历,所以3號(hào)項(xiàng)目就會(huì)緊跟在1號(hào)項(xiàng)目的后面。8號(hào)項(xiàng)目和9號(hào)項(xiàng)目就會(huì)排到第四行擂橘。
如果將設(shè)置改為column dense晌区,表示"先列后行",并且盡量填滿空格通贞。
grid-auto-flow:column dense;
上面代碼的效果如下朗若。
上圖會(huì)先填滿第一列,再填滿第2列昌罩,所以3號(hào)項(xiàng)目在第一列哭懈,4號(hào)項(xiàng)目在第二列。8號(hào)項(xiàng)目和9號(hào)項(xiàng)目被擠到了第四列茎用。
3.6
justify-items 屬性遣总,
align-items 屬性睬罗,
place-items 屬性
justify-items屬性設(shè)置單元格內(nèi)容的水平位置(左中右),align-items屬性設(shè)置單元格內(nèi)容的垂直位置(上中下)彤避。
.container {justify-items:start | end | center | stretch;align-items:start | end | center | stretch;}
這兩個(gè)屬性的寫法完全相同傅物,都可以取下面這些值。
start:對(duì)齊單元格的起始邊緣琉预。
end:對(duì)齊單元格的結(jié)束邊緣董饰。
center:?jiǎn)卧駜?nèi)部居中。
stretch:拉伸圆米,占滿單元格的整個(gè)寬度(默認(rèn)值)卒暂。
.container {justify-items:start;}
上面代碼表示,單元格的內(nèi)容左對(duì)齊娄帖,效果如下圖也祠。
.container {align-items:start;}
上面代碼表示,單元格的內(nèi)容頭部對(duì)齊近速,效果如下圖诈嘿。
place-items屬性是align-items屬性和justify-items屬性的合并簡(jiǎn)寫形式。
place-items:<align-items><justify-items>;
下面是一個(gè)例子削葱。
place-items:start end;
如果省略第二個(gè)值奖亚,則瀏覽器認(rèn)為與第一個(gè)值相等。
3.7
justify-content 屬性析砸,
align-content 屬性昔字,
place-content 屬性
justify-content屬性是整個(gè)內(nèi)容區(qū)域在容器里面的水平位置(左中右),align-content屬性是整個(gè)內(nèi)容區(qū)域的垂直位置(上中下)首繁。
.container {justify-content:start | end | center | stretch | space-around | space-between | space-evenly;align-content:start | end | center | stretch | space-around | space-between | space-evenly;}
這兩個(gè)屬性的寫法完全相同作郭,都可以取下面這些值。(下面的圖都以justify-content屬性為例弦疮,align-content屬性的圖完全一樣夹攒,只是將水平方向改成垂直方向。)
start - 對(duì)齊容器的起始邊框挂捅。
end - 對(duì)齊容器的結(jié)束邊框芹助。
center - 容器內(nèi)部居中。
stretch - 項(xiàng)目大小沒有指定時(shí)闲先,拉伸占據(jù)整個(gè)網(wǎng)格容器状土。
space-around - 每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等。所以伺糠,項(xiàng)目之間的間隔比項(xiàng)目與容器邊框的間隔大一倍蒙谓。
space-between - 項(xiàng)目與項(xiàng)目的間隔相等,項(xiàng)目與容器邊框之間沒有間隔训桶。
space-evenly - 項(xiàng)目與項(xiàng)目的間隔相等累驮,項(xiàng)目與容器邊框之間也是同樣長(zhǎng)度的間隔酣倾。
place-content屬性是align-content屬性和justify-content屬性的合并簡(jiǎn)寫形式。
place-content:<align-content><justify-content>
下面是一個(gè)例子谤专。
place-content:space-around space-evenly;
如果省略第二個(gè)值躁锡,瀏覽器就會(huì)假定第二個(gè)值等于第一個(gè)值。
3.8
grid-auto-columns 屬性置侍,
grid-auto-rows 屬性
有時(shí)候映之,一些項(xiàng)目的指定位置,在現(xiàn)有網(wǎng)格的外部蜡坊。比如網(wǎng)格只有3列杠输,但是某一個(gè)項(xiàng)目指定在第5行。這時(shí)秕衙,瀏覽器會(huì)自動(dòng)生成多余的網(wǎng)格蠢甲,以便放置項(xiàng)目。
grid-auto-columns屬性和grid-auto-rows屬性用來(lái)設(shè)置据忘,瀏覽器自動(dòng)創(chuàng)建的多余網(wǎng)格的列寬和行高鹦牛。它們的寫法與grid-template-columns和grid-template-rows完全相同。如果不指定這兩個(gè)屬性勇吊,瀏覽器完全根據(jù)單元格內(nèi)容的大小能岩,決定新增網(wǎng)格的列寬和行高。
下面的例子里面萧福,劃分好的網(wǎng)格是3行 x 3列,但是辈赋,8號(hào)項(xiàng)目指定在第4行鲫忍,9號(hào)項(xiàng)目指定在第5行。
.container {display:grid;grid-template-columns:100px 100px 100px;grid-template-rows:100px 100px 100px;grid-auto-rows:50px;}
上面代碼指定新增的行高統(tǒng)一為50px(原始的行高為100px)钥屈。
3.9
grid-template 屬性悟民,
grid 屬性
grid-template屬性是grid-template-columns、grid-template-rows和grid-template-areas這三個(gè)屬性的合并簡(jiǎn)寫形式助析。
grid屬性是grid-template-rows辨萍、grid-template-columns莽红、grid-template-areas、?grid-auto-rows智润、grid-auto-columns、grid-auto-flow這六個(gè)屬性的合并簡(jiǎn)寫形式未辆。
從易讀易寫的角度考慮窟绷,還是建議不要合并屬性,所以這里就不詳細(xì)介紹這兩個(gè)屬性了咐柜。
四兼蜈、項(xiàng)目屬性
下面這些屬性定義在項(xiàng)目上面攘残。
4.1
grid-column-start 屬性,
grid-column-end 屬性为狸,
grid-row-start 屬性歼郭,
grid-row-end 屬性
項(xiàng)目的位置是可以指定的,具體方法就是指定項(xiàng)目的四個(gè)邊框辐棒,分別定位在哪根網(wǎng)格線病曾。
grid-column-start屬性:左邊框所在的垂直網(wǎng)格線
grid-column-end屬性:右邊框所在的垂直網(wǎng)格線
grid-row-start屬性:上邊框所在的水平網(wǎng)格線
grid-row-end屬性:下邊框所在的水平網(wǎng)格線
.item-1 {grid-column-start:2;grid-column-end:4;}
上面代碼指定,1號(hào)項(xiàng)目的左邊框是第二根垂直網(wǎng)格線涉瘾,右邊框是第四根垂直網(wǎng)格線知态。
上圖中,只指定了1號(hào)項(xiàng)目的左右邊框立叛,沒有指定上下邊框负敏,所以會(huì)采用默認(rèn)位置,即上邊框是第一根水平網(wǎng)格線秘蛇,下邊框是第二根水平網(wǎng)格線其做。
除了1號(hào)項(xiàng)目以外,其他項(xiàng)目都沒有指定位置赁还,由瀏覽器自動(dòng)布局妖泄,這時(shí)它們的位置由容器的grid-auto-flow屬性決定,這個(gè)屬性的默認(rèn)值是row艘策,因此會(huì)"先行后列"進(jìn)行排列蹈胡。讀者可以把這個(gè)屬性的值分別改成column、row dense和column dense朋蔫,看看其他項(xiàng)目的位置發(fā)生了怎樣的變化罚渐。
下面的例子是指定四個(gè)邊框位置的效果。
.item-1 {grid-column-start:1;grid-column-end:3;grid-row-start:2;grid-row-end:4;}
這四個(gè)屬性的值驯妄,除了指定為第幾個(gè)網(wǎng)格線荷并,還可以指定為網(wǎng)格線的名字。
.item-1 {grid-column-start:header-start;grid-column-end:header-end;}
上面代碼中青扔,左邊框和右邊框的位置源织,都指定為網(wǎng)格線的名字。
這四個(gè)屬性的值還可以使用span關(guān)鍵字微猖,表示"跨越"谈息,即左右邊框(上下邊框)之間跨越多少個(gè)網(wǎng)格。
.item-1 {grid-column-start:span 2;}
上面代碼表示凛剥,1號(hào)項(xiàng)目的左邊框距離右邊框跨越2個(gè)網(wǎng)格黎茎。
這與下面的代碼效果完全一樣。
.item-1 {grid-column-end:span 2;}
使用這四個(gè)屬性当悔,如果產(chǎn)生了項(xiàng)目的重疊傅瞻,則使用z-index屬性指定項(xiàng)目的重疊順序踢代。
4.2
grid-column 屬性,
grid-row 屬性
grid-column屬性是grid-column-start和grid-column-end的合并簡(jiǎn)寫形式嗅骄,grid-row屬性是grid-row-start屬性和grid-row-end的合并簡(jiǎn)寫形式胳挎。
.item {grid-column:/;grid-row:/;}
下面是一個(gè)例子。
.item-1 {grid-column:1 / 3;grid-row:1 / 2;}/* 等同于 */.item-1 {grid-column-start:1;grid-column-end:3;grid-row-start:1;grid-row-end:2;}
上面代碼中溺森,項(xiàng)目item-1占據(jù)第一行慕爬,從第一根列線到第三根列線。
這兩個(gè)屬性之中屏积,也可以使用span關(guān)鍵字医窿,表示跨越多少個(gè)網(wǎng)格。
.item-1 {background:#b03532;grid-column:1 / 3;grid-row:1 / 3;}/* 等同于 */.item-1 {background:#b03532;grid-column:1 / span 2;grid-row:1 / span 2;}
上面代碼中炊林,項(xiàng)目item-1占據(jù)的區(qū)域姥卢,包括第一行 + 第二行、第一列 + 第二列渣聚。
斜杠以及后面的部分可以省略独榴,默認(rèn)跨越一個(gè)網(wǎng)格。
.item-1 {grid-column:1;grid-row:1;}
上面代碼中奕枝,項(xiàng)目item-1占據(jù)左上角第一個(gè)網(wǎng)格棺榔。
4.3 grid-area 屬性
grid-area屬性指定項(xiàng)目放在哪一個(gè)區(qū)域。
.item-1 {grid-area:e;}
上面代碼中隘道,1號(hào)項(xiàng)目位于e區(qū)域症歇,效果如下圖。
grid-area屬性還可用作grid-row-start谭梗、grid-column-start当船、grid-row-end、grid-column-end的合并簡(jiǎn)寫形式默辨,直接指定項(xiàng)目的位置。
.item {grid-area:<row-start> /<column-start> /<row-end> /<column-end>;}
下面是一個(gè)例子苍息。
.item-1 {grid-area:1 / 1 / 3 / 3;}
4.4
justify-self 屬性缩幸,
align-self 屬性,
place-self 屬性
justify-self屬性設(shè)置單元格內(nèi)容的水平位置(左中右)竞思,跟justify-items屬性的用法完全一致表谊,但只作用于單個(gè)項(xiàng)目。
align-self屬性設(shè)置單元格內(nèi)容的垂直位置(上中下)盖喷,跟align-items屬性的用法完全一致爆办,也是只作用于單個(gè)項(xiàng)目。
.item {justify-self:start | end | center | stretch;align-self:start | end | center | stretch;}
這兩個(gè)屬性都可以取下面四個(gè)值课梳。
start:對(duì)齊單元格的起始邊緣距辆。
end:對(duì)齊單元格的結(jié)束邊緣余佃。
center:?jiǎn)卧駜?nèi)部居中。
stretch:拉伸跨算,占滿單元格的整個(gè)寬度(默認(rèn)值)爆土。
下面是justify-self: start的例子。
.item-1? {justify-self:start;}
place-self屬性是align-self屬性和justify-self屬性的合并簡(jiǎn)寫形式诸蚕。
place-self:<align-self><justify-self>;
下面是一個(gè)例子步势。
place-self:center center;
如果省略第二個(gè)值,place-self屬性會(huì)認(rèn)為這兩個(gè)值相等背犯。
鏈接:http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html
來(lái)源:阮一峰
本鏈接源自阮一峰老師如有侵權(quán)請(qǐng)聯(lián)系我即使刪除