網(wǎng)格系統(tǒng) CSS Grid Layout1

CSS網(wǎng)格(CSS Grid)布局入門

CSS網(wǎng)格布局是瀏覽器Flexbox布局之后最重要的布局方式。我們可以忘記過去15年經(jīng)常使用的的各種“神奇數(shù)字”,hacks和一系列變通布局方案。網(wǎng)格布局提供了非常簡(jiǎn)單的聲明布局方式,之后再也不需要借助一些常見的主流css框架,也能減少很多手動(dòng)實(shí)現(xiàn)的布局方式

如果你以前不熟悉CSS網(wǎng)格布局,那么你可以開始了解它了。它是一種適用于容器元素,并能指定子元素的間距、大小和對(duì)齊方式的布局工具。

CSS網(wǎng)格布局賦予我們更強(qiáng)大的能力——大家熟悉的水平垂直居中布局,不需要增加標(biāo)簽就能做到。同樣,這也能讓我們不需要媒體查詢就能根據(jù)可用空間自動(dòng)適應(yīng)。

瀏覽器兼容性

CSS網(wǎng)格布局從Safari 10.1, Firefox 52, Opera 44, Chrome 57開始收到支持,微軟Edge在Edge 15會(huì)更新對(duì)網(wǎng)格布局的支持。

微軟的瀏覽器(IE10–11和Edge 13-14)有一種比較舊的實(shí)現(xiàn),所以有不少限制,我們會(huì)簡(jiǎn)單介紹新的實(shí)現(xiàn)方式和老的實(shí)現(xiàn)方式之間的區(qū)別,這樣你能知道如何規(guī)避他們。

創(chuàng)建帶有間距(gutter)的兩列(column)網(wǎng)格

使用grid-template-columns 和 grid-gap創(chuàng)建帶間距的兩列布局

為了創(chuàng)建上述網(wǎng)格布局,我們需要使用grid-template-columnsgrid-gap
grid-template-columns表示網(wǎng)格中的列是如何布局的,它的值是一連串以空格分割的的值,這些值標(biāo)識(shí)每列的大小,值的個(gè)數(shù)表示列的數(shù)目。

例如,四列250px寬度的網(wǎng)格布局可以這樣表示:
`grid-template-columns: 250px 250px 250px 250px;`

也可以使用repeat關(guān)鍵字表示:

  grid-template-columns: repeat(4, 250px);
定義間距

grid-gap定義了網(wǎng)格布局的間距大小,接收一個(gè)或兩個(gè)值,如果定義兩個(gè)值則表示列(column)和行(row)的間距大小。

*在兩列布局示例中,我們可以如下使用: *
 `.grid {
    display: grid;
    grid-template-columns: 50vw 50vw;
    grid-gap: 1rem;
}`

不幸的是,這個(gè)間距將會(huì)占用容器元素的整體寬度,計(jì)算出來就是100vw + 1rem,最終這個(gè)布局會(huì)導(dǎo)致出現(xiàn)水平滾動(dòng)條。

viewport導(dǎo)致的水平滾動(dòng)條

內(nèi)容對(duì)齊

為了對(duì)齊示例中的內(nèi)容,我們?cè)谧釉厣鲜褂胓rid布局,并加上對(duì)齊屬性來定位他們到指定軌道(track),軌道就是一個(gè)網(wǎng)格的列或行的某個(gè)位置的常見的名稱。網(wǎng)格跟Flex布局一樣,有一系列對(duì)齊的屬性——共有四種值——start, center, end, 和stretch,分別對(duì)應(yīng)其子元素所在的軌道。stretch跟其他不太一樣,它會(huì)將元素從所在軌道的頭拉伸到尾。


align-items 和 justify-content
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址:Getting to know CSS Grid Layout 原文作者:Chris Wright 譯者...
    iKcamp閱讀 3,870評(píng)論 0 13
  • 簡(jiǎn)介 CSS Grid布局 (又名"網(wǎng)格"),是一個(gè)基于二維網(wǎng)格布局的系統(tǒng),旨在改變我們基于網(wǎng)格設(shè)計(jì)的用戶界面方式...
    咕咚咚bells閱讀 2,690評(píng)論 0 4
  • 簡(jiǎn)介CSS網(wǎng)格布局(又稱“網(wǎng)格”),是一種二維網(wǎng)格布局系統(tǒng)。CSS在處理網(wǎng)頁(yè)布局方面一直做的不是很好。一開始我們用...
    _leonlee閱讀 65,745評(píng)論 25 173
  • 前言 溫馨提示:本文較長(zhǎng),圖片較多,本來是想寫一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實(shí)現(xiàn)...
    sunshine小小倩閱讀 3,265評(píng)論 0 59
  • 喜歡旅行的小伙伴很多,喜歡戶戶外圖不多的人也不少,但大多都因?yàn)槿狈ν讲浇?jīng)驗(yàn),要么容易身陷仙境,要么就會(huì)臨陣放棄。那...
    心安處即歸途閱讀 490評(píng)論 0 2

友情鏈接更多精彩內(nèi)容