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

資訊專欄INFORMATION COLUMN

Grid布局——頁面布局如此簡單

Scorpion / 1860人閱讀

摘要:網(wǎng)格單元格被劃分之后每一個格子就是單元格,也是布局的最小單位。網(wǎng)格區(qū)域若干個單元格拼接而成的區(qū)域。網(wǎng)格間隙單元格與單元格之間的距離,可以垂直也可以水平。

前言

CSS網(wǎng)格布局用于將頁面分割成數(shù)個主要區(qū)域,或者用來定義組件內(nèi)部元素間大小、位置和圖層之間的關(guān)系。像表格一樣,網(wǎng)格布局讓我們能夠按行或列來對齊元素。 但是,使用CSS網(wǎng)格可能還是比CSS表格更容易布局。 例如,網(wǎng)格容器的子元素可以自己定位,以便它們像CSS定位的元素一樣,真正的有重疊和層次。

介紹

gird布局是一種基于二維的網(wǎng)格布局,與flex和普通的浮動布局相比,他最大的優(yōu)勢在于不取決dom節(jié)點(diǎn)的結(jié)構(gòu),而是直接把整個頁面劃分為多個格子,繼而進(jìn)行填充。

提供能力

①二維布局,提供橫、豎方向布局,與table相似
②可設(shè)置具體的行數(shù)、列數(shù),且可設(shè)置每行、每列的大小,提供多種的彈性大小控制屬性
③可定義每個格子間的間隔(橫豎)
④可設(shè)置元素的對齊方式(基于元素所在單元格),批量控制,具體某個子元素控制
⑤可讓元素填充到指定的格子(某行、某列,跨格子),此功能可以對元素進(jìn)行任意的布局,而無需修改html結(jié)構(gòu)

兼容性

在開發(fā)之前,你得先了解其兼容性??傮w來說,兼容性還是不夠全面,但如果一些公司用于內(nèi)部系統(tǒng)開發(fā),grid布局將會是一個不錯的選擇。

基本概念 Grid line(網(wǎng)格線)

用于將整體劃分為每一個各自的線,可以水平(row grid lines),也可以是垂直的(column grid lines),如下圖中的紅線藍(lán)線。

Grid cell(網(wǎng)格單元格)

被劃分之后每一個格子就是單元格,也是gird布局的最小單位。

Grid area(網(wǎng)格區(qū)域)

若干個單元格拼接而成的區(qū)域。

Grid gap(網(wǎng)格間隙)

單元格與單元格之間的距離,可以垂直也可以水平。

容器屬性(container)

以下圖片來源:http://grid.malven.co/

display(啟動該布局)

grid-template(網(wǎng)格模板)

用于定義 grid columns, rows 和areas。

grid-gap(單元格間隙)

justify-items

用于定義主軸(水平)對齊方式

align-items

用于定于副軸(垂直)對齊方式

justify-content

用于定于主軸(水平)上多跟軸線的對齊方式

align-content

用于定于副軸(垂直)上多跟軸線的對齊方式

grid-auto-flow

用于定義單元格的自動遍歷順序

children(組件)

以下圖片來源:http://grid.malven.co/

grid-column

用于控制該組件在水平方向上占多少個格

grid-row

用于控制該組件在垂直方向上占多少個格

grid-row + grid-column

合并控制組件在垂直水平方向上各占多少個格

justify-self

用于定義該組件在主軸(水平)方向上內(nèi)容的對齊方式

align-self

用于定義該組件在副軸(垂直)方向上內(nèi)容的對齊方式

實(shí)際例子

如何在不改變dom節(jié)點(diǎn)結(jié)構(gòu)的情況下,實(shí)現(xiàn)如下功能:在屏幕不同分辨率的情況下,頁面中的組件自動地移位。
①電腦:寬度大于1200px,布局如下:

②平板:寬度大于992px,小于1200px,布局如下:

③手機(jī):寬度小于992px,布局如下:

具體實(shí)現(xiàn)

代碼來源,https://github.com/TheWalking...

html代碼
header
subtitle
left
middle
right-top
right-middle
right-bottom
css代碼
.container{
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 10px;
        grid-auto-rows: minmax(50px, auto);
    }
    .container div{
        background-color: rgba(189, 249, 255, 1);
        border: 2px solid rgb(77, 170, 179, 1);
        border-radius: 5px;
        text-align: center;
        line-height: 50px;
    }

    @media only screen and (min-width: 768px) {
        .header{
            grid-column: 1;
            grid-row: 1;
        }
        .subtitle{
            grid-column: 1;
            grid-row: 2;
        }
        .left{
            grid-column: 1;
            grid-row: 4 / 7;
        }
        .middle{
            grid-column: 1;
            grid-row: 8 / 11;
        }
        .right-top{
            grid-column: 1;
            grid-row: 3;
        }
        .right-middle{
            grid-column: 1;
            grid-row: 7;
        }
        .right-bottom{
            grid-column: 1;
            grid-row: 11;
        }
        .footer{
            grid-column: 1;
            grid-row: 12;
        }
    } 

    @media only screen and (min-width: 992px) {
        .header{
            grid-column: 1 / 3;
            grid-row: 1;
        }
        .subtitle{
            grid-column: 1 / 3;
            grid-row: 2;
        }
        .left{
            grid-column: 1;
            grid-row: 4 / 7;
        }
        .middle{
            grid-column: 2;
            grid-row: 4 / 7;
        }
        .right-top{
            grid-column: 1 / 3;
            grid-row: 3;
        }
        .right-middle{
            grid-column: 1;
            grid-row: 7;
        }
        .right-bottom{
            grid-column: 2;
            grid-row: 7;
        }
        .footer{
            grid-column: 1 / 3;
            grid-row: 8;
        }
    } 

    @media only screen and (min-width: 1200px) {
        .header{
            grid-column: 1 / 4;
            grid-row: 1;
        }
        .subtitle{
            grid-column: 1 / 4;
            grid-row: 2;
        }
        .left{
            grid-column: 1;
            grid-row: 3 / 6;
        }
        .middle{
            grid-column: 2;
            grid-row: 3 / 6;
        }
        .right-top{
            grid-column: 3;
            grid-row: 3;
        }
        .right-middle{
            grid-column: 3;
            grid-row: 4;
        }
        .right-bottom{
            grid-column: 3;
            grid-row: 5;
        }
        .footer{
            grid-column: 1 / 4;
            grid-row: 6;
        }
    }

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

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

相關(guān)文章

  • css布局的各種FC簡單介紹:BFC,IFC,GFC,F(xiàn)FC

    摘要:完整的說法是屬于同一個的倆個相鄰的的會發(fā)生重疊,與方向無關(guān)。元素會位于與與之間,使得寬度縮短。簡單的說,有了之后,布局不再局限于單個維度了。 什么是FC? Formatting Context,格式化上下文,指頁面中一個渲染區(qū)域,擁有一套渲染規(guī)則,它決定了其子元素如何定位,以及與其他元素的相互關(guān)系和作用。 BFC 什么是BFC Block Formatting Context,塊級格式...

    mindwind 評論0 收藏0
  • css布局的各種FC簡單介紹:BFC,IFC,GFC,F(xiàn)FC

    摘要:完整的說法是屬于同一個的倆個相鄰的的會發(fā)生重疊,與方向無關(guān)。元素會位于與與之間,使得寬度縮短。簡單的說,有了之后,布局不再局限于單個維度了。 什么是FC? Formatting Context,格式化上下文,指頁面中一個渲染區(qū)域,擁有一套渲染規(guī)則,它決定了其子元素如何定位,以及與其他元素的相互關(guān)系和作用。 BFC 什么是BFC Block Formatting Context,塊級格式...

    付永剛 評論0 收藏0
  • 布局看css基礎(chǔ)

    摘要:布局學(xué)習(xí)的主要目的是為了記住各種屬性么,最重要的是理解的定位機(jī)制與盒子模型。它是一個獨(dú)立的渲染區(qū)域,只有參與,它規(guī)定了內(nèi)部的如何布局,并且與這個區(qū)域外部毫不相干。 css布局 學(xué)習(xí)css的主要目的是為了記住各種屬性么?NO,最重要的是理解css的定位機(jī)制與盒子模型。 接下來,從布局的角度來學(xué)習(xí)css的定位機(jī)制和盒子模型,學(xué)習(xí)之前還是先來提幾個問題 1.進(jìn)行css布局前為什么要學(xué)習(xí)定位...

    thekingisalwaysluc 評論0 收藏0
  • HTML-CSS

    摘要:但是,從字體上來說雪碧圖制作,使用以及相關(guān),圖文。由于采用了編譯,所以能夠保證在瀏覽器不支持標(biāo)準(zhǔn)布局的情況下,回滾到舊版本的,保證移動設(shè)備中能呈現(xiàn)出一樣的布局效果。我不想陷入和的紛爭,但是有一件事是確定的極大的提升了移動端 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個問題:怎樣通過 CSS 簡單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時居中。記得剛開始學(xué)習(xí) CSS 的時候,看到 ...

    xiaokai 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<