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

資訊專欄INFORMATION COLUMN

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

cjie / 1307人閱讀

摘要:的個(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 grid(網(wǎng)格) 內(nèi)的內(nèi)容。

下面是一個(gè) wrapper 元素,內(nèi)部包含6個(gè) items :

1
2
3
4
5
6

要把 wrapper 元素變成一個(gè) grid(網(wǎng)格),只要簡單地把其 display 屬性設(shè)置為 grid 即可:

.wrapper {
    display: grid;
}

Columns(列) 和 rows(行)

為了使其成為二維的網(wǎng)格容器,我們需要定義列和行。讓我們創(chuàng)建3列和2行。我們將使用grid-template-rowgrid-template-column屬性。

.wrapper {
    display: grid;
    grid-template-columns: 100px 100px 100px;
    grid-template-rows: 50px 50px;
}

grid-template-columns的3個(gè)值表示三列,相應(yīng)的數(shù)值表示列寬即都為100px。
grid-template-rows的2個(gè)值表示兩行,相應(yīng)的數(shù)值表示行高即都為50px

得到的結(jié)果如下:

我們可以變化一下行高跟列寬的值看下效果,代碼:

.wrapper {
    display: grid;
    grid-template-columns: 200px 50px 100px;
    grid-template-rows: 100px 30px;
}

效果如圖:

放置 items(子元素)

我們使用與之前相同的 HTML 標(biāo)記,為了幫助我們更好的理解,我們在每個(gè) items(子元素) 加上了多帶帶的 class :

1
2
3
4
5
6

創(chuàng)建一個(gè) 3×3 的 grid(網(wǎng)格):

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

得到如下效果:

我們只在頁面上看到 3×2 的 grid(網(wǎng)格),而我們定義的是 3×3 的 grid(網(wǎng)格)。這是因?yàn)槲覀冎挥?6 個(gè) items(子元素) 來填滿這個(gè)網(wǎng)格。如果我們再加3個(gè) items(子元素),那么最后一行也會(huì)被填滿。

定位和調(diào)整 items(子元素) 大小,我們將使用 grid-column grid-row 屬性來設(shè)置:

.item1 {
    grid-column-start: 1;
    grid-column-end: 4;
}

當(dāng)然可以有簡寫方式:

.item1 {
    grid-column: 1 / 4;
}

上面代碼意思就是: item1 占據(jù)從第一條網(wǎng)格線開始,到第四條網(wǎng)格線結(jié)束。顯示效果如下:

如果你不明白我們設(shè)置的只有 3 列,為什么有4條網(wǎng)格線呢?看看下面這個(gè)圖像,黑色的列網(wǎng)格線你就明白了:

如果上面的看懂了,來個(gè)復(fù)雜點(diǎn)的鞏固下。

.item1 {
    grid-column-start: 1;
    grid-column-end: 3;
}
.item3 {
    grid-row-start: 2;
    grid-row-end: 4;
}
.item4 {
    grid-column-start: 2;
    grid-column-end: 4;
}

效果如圖:

響應(yīng)式布局例子

實(shí)現(xiàn)如圖效果:

結(jié)構(gòu)布局

HEADER
CONTENT

使用 grid-template-columns 屬性創(chuàng)建一個(gè) 12 列的網(wǎng)格,每個(gè)列都是一個(gè)單位寬度(總寬度的 1/12 )。(愚人碼頭注:其中, repeat(12, 1fr) 意思是 12 個(gè)重復(fù)的 1fr 值。 fr 是網(wǎng)格容器剩余空間的等分單位。)

使用 grid-template-rows 屬性創(chuàng)建 3 行,第一行高度是 50px ,第二行高度是 350px 和第三行高度是 50px。

使用 grid-gap 屬性在網(wǎng)格中的網(wǎng)格項(xiàng)之間添加一個(gè)間隙。

添加 grid-template-areas

這個(gè)屬性被稱為網(wǎng)格區(qū)域,也叫模板區(qū)域,能夠讓我們輕松地進(jìn)行布局實(shí)驗(yàn)。

要將它添加到網(wǎng)格中,我們只需給網(wǎng)格容器加一個(gè) grid-template-areas 屬性即可。 語法可能有點(diǎn)奇怪,因?yàn)樗幌衿渌?CSS 語法。例如:

.container {
    display: grid;
    grid-gap: 5px;    
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: 50px 350px 50px;
    grid-template-areas:
        "h h h h h h h h h h h h"
        "m m c c c c c c c c c c"
        "f f f f f f f f f f f f";
}

上面代碼創(chuàng)建3行12列,上面grid-template-areas屬性中的值,每行代表一行,用網(wǎng)格術(shù)語來說是 網(wǎng)格軌道(Grid Track) ,每個(gè)字符( h,m,c,f)代表一個(gè)網(wǎng)格單元格。愚人碼頭注:其實(shí)是 網(wǎng)格區(qū)域(Grid Area) 名稱,你可以使用任意名稱

你可能已經(jīng)猜到,我選擇了字符 h,m,c,f,是因?yàn)樗麄兪?header, menu, content 和 footer 的首字母。 當(dāng)然,我可以把它們叫做任何想要的名稱,但是使用他們所描述的東西的第一個(gè)字符更加容易讓人理解。

給網(wǎng)格項(xiàng)設(shè)定網(wǎng)格區(qū)域名稱

現(xiàn)在我們需要將這些字符與網(wǎng)格中的網(wǎng)格項(xiàng)建立對應(yīng)的連接。 要做到這一點(diǎn),我們將在網(wǎng)格項(xiàng)使用 grid-area 屬性:

.header {
    grid-area: h;
}
.menu {
    grid-area: m;
}
.content {
    grid-area: c;
}
.footer {
   grid-area: f;
}

這樣就實(shí)現(xiàn)了上面的布局效果。

嘗試其它布局

1.把 menu 移到右邊

grid-template-areas:
        “h h h h h h h h h h h h”
        "c c c c c c c c c c m m”
        “f f f f f f f f f f f f”;

實(shí)現(xiàn)后的效果:

2.使用點(diǎn) . 來創(chuàng)建空白的網(wǎng)格單元格

grid-template-areas:
        “. h h h h h h h h h h .”
        "c c c c c c c c c c m m”
        “. f f f f f f f f f f .”;

實(shí)現(xiàn)效果:

3.真正的響應(yīng)式布局
假設(shè)你想在移動(dòng)設(shè)備上查看的是:標(biāo)題旁邊是菜單。那么你可以簡單地這樣做:

@media screen and (max-width: 640px) {
    .container {
        grid-template-areas:
            "m m m m m m h h h h h h"
            "c c c c c c c c c c c c"
            "f f f f f f f f f f f f";
    }
}

可以看到如下效果:

注:所有這些更改都是使用純 CSS 完成的,不需要修改 HTML 。這被稱為結(jié)構(gòu)和表現(xiàn)分離, Grid(網(wǎng)格) 布局真正做到了這點(diǎn)。
瀏覽器兼容

如圖所示:

參考地址

5分鐘學(xué)會(huì) CSS Grid 布局

如何使用 CSS Grid 快速而又靈活的布局

CSS Grid 布局完全指南(圖解 Grid 詳細(xì)教程)

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

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

相關(guān)文章

  • CSS布局

    摘要:經(jīng)過半年的打磨,正式發(fā)布,主要是新增了一些常用組件,并使用命名,為接下來的微信小程序開發(fā)做好準(zhǔn)備。這兩種方式實(shí)現(xiàn)的瀑布流式布局均支持首屏和網(wǎng)頁窗口大小改變時(shí)的列數(shù)自適應(yīng)。主要是對于標(biāo)準(zhǔn)里的布局方式草案中的布局方式進(jìn)行一些總結(jié)。 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問題:怎樣通過 CSS 簡單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開始學(xué)習(xí) CSS 的時(shí)候,看...

    jaysun 評論0 收藏0
  • HTML-CSS

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

    xiaokai 評論0 收藏0
  • HTML-CSS

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

    CHENGKANG 評論0 收藏0
  • 「翻譯」逐步替換Sass

    摘要:本文來自心譚博客譯文逐步替換,最新文章請見導(dǎo)航頁,歡迎交流翻譯說明這是一篇介紹現(xiàn)代核心特性的文章,并且借助進(jìn)行橫向?qū)Ρ?,充分體現(xiàn)了作為一門設(shè)計(jì)語言的快速發(fā)展以及新特性為我們開發(fā)者帶來的強(qiáng)大生產(chǎn)力。 本文來自心譚博客·「譯文」逐步替換Sass,最新文章請見導(dǎo)航頁,歡迎交流??ヽ(°▽°)ノ? 翻譯說明 這是一篇介紹現(xiàn)代 css 核心特性的文章,并且借助 sass 進(jìn)行橫向?qū)Ρ龋浞煮w現(xiàn)了...

    explorer_ddf 評論0 收藏0
  • 面試寶典

    摘要:有談?wù)劽嬖嚺c面試題對于前端面試的一些看法。動(dòng)態(tài)規(guī)劃算法的思想及實(shí)現(xiàn)方法幫大家理清動(dòng)態(tài)規(guī)劃的解決思路以及原理方法前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個(gè)方面。極客學(xué)院前端練習(xí)題道練習(xí)題,面試季練練手。 由數(shù)據(jù)綁定和排序引入的幾個(gè) JavaScript 知識點(diǎn) 在 JavaScript 的數(shù)據(jù)綁定和做簡單的表格排序中遇到的幾個(gè)知識點(diǎn) [[JS 基礎(chǔ)...

    neu 評論0 收藏0

發(fā)表評論

0條評論

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