成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

CSS網(wǎng)格布局基礎(chǔ)

lijy91 / 1588人閱讀

摘要:瀏覽器兼容性可以看出網(wǎng)格布局從,開始受到支持。當(dāng)這些項(xiàng)目不是網(wǎng)格容器的直接子級(jí)元素時(shí),它們不會(huì)參與到網(wǎng)格布局中,并顯示為正常的文檔流。

瀏覽器兼容性

可以看出CSS網(wǎng)格布局從Safari 10.1, Firefox 52, Chrome 60,Edge 15開始受到支持。

網(wǎng)格布局

頁面基本元素:

    
One
Two
Three
Four
Five

樣式:

        .wrapper {
            border: 2px solid #f76707;
            border-radius: 5px;
            background-color: #fff4e6;
        }
        .box {
            border: 2px solid #FDC180;
        }

通過在元素上聲明 display:grid 或 display:inline-grid 來創(chuàng)建一個(gè)網(wǎng)格容器:

    .wrapper {
        display: grid;
    }

如下效果:

定義網(wǎng)格中的行和列

通過 grid-template-columnsgrid-template-rows屬性來定義網(wǎng)格中的行和列。這些屬性定義了網(wǎng)格的軌道。網(wǎng)格軌道是網(wǎng)格中任意兩條線之間的空間。
如下網(wǎng)格,包含了三個(gè)200像素寬的列軌道:

    .wrapper {
        display: grid;
        grid-template-columns: 200px 200px 200px;
    }

fr單位

新的fr單位代表網(wǎng)格容器中可用空間的一等份。下一個(gè)網(wǎng)格定義將創(chuàng)建三個(gè)相等寬度的軌道,這些軌道會(huì)隨著可用空間增長和收縮。

    .wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }

也可以和像素單位混用:

        .wrapper {
            display: grid;
            grid-template-columns: 500px 1fr 2fr;
        }

在軌道清單中使用repeat()

repeat 的語法如下:

repeat(number of columns/rows, the column width we want);

有著多軌道的大型網(wǎng)格可使用 repeat() 標(biāo)記來重復(fù)部分或整個(gè)軌道列表。如下方的網(wǎng)格定義:

    .wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }

可以寫成:

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

Repeat 語句可以用于重復(fù)軌道列表中的一部分。在下面的例子中我創(chuàng)建了一個(gè)網(wǎng)格:它起始軌道為20像素,接著重復(fù)了6個(gè)1fr的軌道,最后再添加了一個(gè)20像素的軌道。

    .wrapper {
        display: grid;
        grid-template-columns: 20px repeat(6, 1fr) 20px;
    }

Repeat 語句可以傳入一個(gè)軌道列表,因此你可以用它來創(chuàng)建一個(gè)多軌道模式的重復(fù)軌道列表。在下一個(gè)例子中,網(wǎng)格將有共計(jì)10個(gè)軌道,為1個(gè)1fr軌道后面跟著1個(gè)2fr軌道,該模式重復(fù)5次。

    .wrapper {
        display: grid;
        grid-template-columns: repeat(5, 1fr 2fr);
    }
grid-auto-rows 和 grid-auto-columns

創(chuàng)建上文中網(wǎng)格例子的時(shí)候,我們用 grid-template-columns 屬性定義了自己的列軌道,但是卻讓網(wǎng)格按所需的內(nèi)容創(chuàng)建行,這些行會(huì)被創(chuàng)建在隱式網(wǎng)格中。顯式網(wǎng)格包含了你在 grid-template-columns 和 grid-template-rows 屬性中定義的行和列。如果你在網(wǎng)格定義之外又放了一些東西,或者因?yàn)閮?nèi)容的數(shù)量而需要的更多網(wǎng)格軌道的時(shí)候,網(wǎng)格將會(huì)在隱式網(wǎng)格中創(chuàng)建行和列。按照默認(rèn),這些軌道將自動(dòng)定義尺寸,所以會(huì)根據(jù)它里面的內(nèi)容改變尺寸。
可以在隱式網(wǎng)格中用 grid-auto-rows 和 grid-auto-columns 屬性來定義一個(gè)設(shè)置大小尺寸的軌道。
在下面的例子中我們用 grid-auto-rows 屬性來確保在隱式網(wǎng)格中創(chuàng)建的軌道是200像素高。

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 200px;
    }

minmax()

在設(shè)置一個(gè)顯式的網(wǎng)格或者定義自動(dòng)創(chuàng)建的行和列的大小的時(shí)候,我們也許想給網(wǎng)格一個(gè)最小的尺寸,但要確保他們能擴(kuò)大到容納他里面添加的內(nèi)容。舉個(gè)例子,我想讓我的行的高度永遠(yuǎn)不會(huì)縮小到100像素以下,但是如果我的內(nèi)容延伸到300像素高了我想讓我的行高也延伸到這個(gè)高度。

網(wǎng)格用minmax()函數(shù)來解決這個(gè)問題。在下一個(gè)例子中我用minmax()作為grid-auto-rows的值。自動(dòng)創(chuàng)建的行高將會(huì)是最小100像素,最大為auto。用auto意味著行的尺寸將會(huì)根據(jù)內(nèi)容的大小來自動(dòng)變換:根據(jù)本行中最高的單元,把空間擴(kuò)展到足夠容納該單元。

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: minmax(100px, auto);
    }
One
Two

I have some more content in.

This makes me taller than 100 pixels.

Three
Four
Five

跨軌道放置網(wǎng)格項(xiàng)目

如下有四條縱向的網(wǎng)格線和三條橫向的網(wǎng)格線:

使用了grid-column-start, grid-column-end, grid-row-startgrid-row-end 屬性,把前兩個(gè)元素放到了我們的三列網(wǎng)格中。從左至右,第一個(gè)元素從列線1開始,延伸至列線4,也就是我們這個(gè)例子中最右邊的列線。并從行線1延伸到行線3,占據(jù)了兩個(gè)行軌道。
第二個(gè)元素從列線1開始,延伸了一個(gè)軌道。因?yàn)檫@是默認(rèn)行為,所以我不用指定結(jié)束線。并且它從行線3到行線5,跨越了兩個(gè)行軌道。剩下的元素會(huì)把自己安放到網(wǎng)格空余的空間中。

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 100px;
    }
    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
    }
    .box2 {
        grid-column-start: 1;
        grid-row-start: 3;
        grid-row-end: 5;
    }

網(wǎng)格間距

在兩個(gè)網(wǎng)格單元之間的 網(wǎng)格橫向間距 或 網(wǎng)格縱向間距可使用 grid-column-gapgrid-row-gap 屬性來創(chuàng)建,或者直接使用兩個(gè)合并的縮寫形式 grid-gap。在下面的例子中,我會(huì)創(chuàng)建一個(gè)橫向間距為10px、縱向間距為1em的網(wǎng)格元素。

嵌套網(wǎng)格

一個(gè)網(wǎng)格項(xiàng)目可以也成為一個(gè)網(wǎng)格容器。在接下來的例子中我事先有了一個(gè)3列的網(wǎng)格元素,并有兩個(gè)跨軌道的網(wǎng)格。在這個(gè)例子中,第一個(gè)網(wǎng)格項(xiàng)目含有幾個(gè)子級(jí)項(xiàng)目。當(dāng)這些項(xiàng)目不是網(wǎng)格容器的直接子級(jí)元素時(shí),它們不會(huì)參與到網(wǎng)格布局中,并顯示為正常的文檔流。
html:

    
a
b
c
Two
Three
Four
Five

css:

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
    
    .wrapper {
        border: 2px solid #f76707;
        border-radius: 5px;
        background-color: #fff4e6;
    }
    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
    }
    .box2 {
        grid-column-start: 1;
        grid-row-start: 3;
        grid-row-end: 5;
    }
    .box {
        border: 2px solid #FDC180;
        background: #FFD7A4;
        padding: 10px;
        color: #FB2E10;
    }
    .nested {
        border: 2px solid #FFF1A2;
        background: #FFFAD9;
    }

如果我把 box1 設(shè)置成 display: grid 我可以給它定義軌道然后它也會(huì)變成一個(gè)網(wǎng)格元素,它的子級(jí)元素也會(huì)排列在這個(gè)新網(wǎng)格元素中。

    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

參考文章:
https://www.w3cplus.com/css3/...
https://developer.mozilla.org...
http://caibaojian.com/fr.html

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/112793.html

相關(guān)文章

  • CSS基礎(chǔ)篇--快速使用CSS Grid布局,實(shí)現(xiàn)響應(yīng)式設(shè)計(jì)

    摘要:的個(gè)值表示三列,相應(yīng)的數(shù)值表示列寬即都為。嘗試其它布局把移到右邊實(shí)現(xiàn)后的效果使用點(diǎn)來創(chuàng)建空白的網(wǎng)格單元格實(shí)現(xiàn)效果真正的響應(yīng)式布局假設(shè)你想在移動(dòng)設(shè)備上查看的是標(biāo)題旁邊是菜單。 常用Grid布局屬性介紹 下面從一個(gè)簡單Grid布局例子說起。 CSS Grid 布局由兩個(gè)核心組成部分是 wrapper(父元素)和 items(子元素)。 wrapper 是實(shí)際的 grid(網(wǎng)格),items...

    cjie 評(píng)論0 收藏0
  • 一行css代碼搞定響應(yīng)式布局

    摘要:最精彩的地方在于所有的響應(yīng)特性被添加到了一行代碼中。基礎(chǔ)響應(yīng)單位柵格布局帶來了一個(gè)全新的值單位,單位通常簡寫為,它允許你根據(jù)需要將容器拆分為多個(gè)塊。 原文地址: https://medium.com/free-code-...原文作者: Per Harald Borgen 翻譯作者: hanxiansen showImg(https://segmentfault.com/img/re...

    appetizerio 評(píng)論0 收藏0
  • CSS Grid 系列(上)-Grid布局完整指南

    摘要:瀏覽器已經(jīng)宣布將支持標(biāo)準(zhǔn)的語法,但暫未支持。重復(fù)網(wǎng)格區(qū)域的名稱導(dǎo)致內(nèi)容擴(kuò)展到這些單元格。點(diǎn)號(hào)表示一個(gè)空單元格。中間一行將由兩個(gè)區(qū)域一個(gè)空單元格和一個(gè)區(qū)域組成。只要這些點(diǎn)號(hào)之間沒有空格,他們就代表了一個(gè)單一的單元格。 by Chris House 譯者:若愚老師想要更好的閱讀體驗(yàn)可在饑人谷技術(shù)博客 查看原文 CSS 網(wǎng)格布局(Grid Layout) 是CSS中最強(qiáng)大的布局系統(tǒng)。 這是一...

    yy13818512006 評(píng)論0 收藏0
  • CSS Grid 布局完全指南(圖解 Grid 詳細(xì)教程)

    摘要:重復(fù)網(wǎng)格區(qū)域的名稱導(dǎo)致內(nèi)容跨越這些單元格。中間一排將由兩個(gè)區(qū)域,一個(gè)是空單元格,一個(gè)區(qū)域組成。你可以使用任意數(shù)量的相鄰的點(diǎn)來聲明單個(gè)空單元格。只要這些點(diǎn)之間沒有空隙隔開,他們就代表一個(gè)單獨(dú)的單元格。? CSS Grid 布局是 CSS 中最強(qiáng)大的布局系統(tǒng)。與 flexbox 的一維布局系統(tǒng)不同,CSS Grid 布局是一個(gè)二維布局系統(tǒng),也就意味著它可以同時(shí)處理列和行。通過將 CSS 規(guī)則應(yīng)用...

    flybywind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<