国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CSS Grid 初識(shí)

xingqiba / 529人閱讀

摘要:網(wǎng)格是繼之后又一非常重要的布局方法。目前,瀏覽器的最新版本已經(jīng)開始支持它了。說在前面與的區(qū)別是一維的,是二維的。定義列隨后,我們需要對(duì)列進(jìn)行聲明。通過擴(kuò)展關(guān)鍵字,意味著從這個(gè)元素應(yīng)該開始的位置擴(kuò)展幾列。

CSS Grid (CSS網(wǎng)格) 是繼 Flexbox之后又一非常重要的布局方法。目前,Chrome Firefox Safari 瀏覽器的最新版本已經(jīng)開始支持它了。

本篇文章,我們通過實(shí)現(xiàn)如下布局的照片墻的例子來學(xué)習(xí)CSS Grid

說在前面:FlexBoxCSS Grid 的區(qū)別?

Flexbox是一維的, CSS Grid是二維的。你想想,使用Flexbox的時(shí)候你需要通過定義flex-direction: row | column來決定布局方向。而CSS Grid可以行、列布局。

效果分析

首先,我們來分析一下最后的效果。我們把Bootstrap的網(wǎng)格系統(tǒng)搬到腦袋中,可以看到它是由4行4列組成的:

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

首先,和Flexbox一樣,我們需要定義一個(gè)Grid容器,并且通過display: grid聲明使用grid布局方式。

定義列

隨后,我們需要對(duì)列進(jìn)行聲明。通過grid-template-columns屬性,以下方式定義了一個(gè)4列,每列200px的網(wǎng)格系統(tǒng)。

grid-template-columns: 200px 200px 200px 200px;

一種更簡(jiǎn)單的寫法是:

grid-template-columns: repeat(4, 200px);

如果你并不想定義具體的數(shù)值,而是想每列的寬度按一行長(zhǎng)度的占比來定義的話,可以使用Grid新引入的fr單位。frfraction(分?jǐn)?shù))的意思,也就是說你定義的就是分子,所有你定義的加起來就是分母。比如一整行是900px, 1fr 2fr就代表第一列占據(jù)1/3,第二列占據(jù)2/3
在我們的效果圖中,可以看到4列平分了一行的寬度,因此我們可以這樣定義:

grid-template-columns: repeat(4, 1fr);

你還想在行列之間加一些間隔(Gutters), 使用grid-gap屬性:

grid-gap: 0.5rem;

目前,我們的布局情況就是這樣:

.grid-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap:0.5rem;
}
1
2
3
4
5
6

定義行

當(dāng)一行占滿之后會(huì)自動(dòng)切換到下一行。沒有特別需要的話,你不用定義它。
不過像我們這里需要定義每一行的高度。定義行的方式也與前面講的定義列的方式相似,使用grid-template-rows進(jìn)行定義:

grid-template-rows: repeat(4, 150px);

有一點(diǎn)比較尷尬的是,我們往往不知道每一塊的內(nèi)容是多少,有時(shí)候內(nèi)容的高度會(huì)溢出定義的高度,不過不用擔(dān)心,你可以使用minmax(min, max)使高度更靈活。

grid-template-rows: repeat(4, minmax(150px, auto));

跨行列

以上,我們就定義好了我們網(wǎng)格系統(tǒng)的行列了。

在我們的效果圖中,我們看到某些元素是占據(jù)了不止一行或者一列的,我們可以通過給每個(gè)元素(grid item)設(shè)置grid-column-start, grid-column-end來定義每一個(gè)元素開始和結(jié)束的地方。

灰色底色的數(shù)字呢,就代表著列。比如你想你的第一個(gè)元素橫跨兩列,那么這個(gè)元素從1開始,橫跨兩列,到3結(jié)束:

    grid-column-start: 1;
    grid-column-end: 3;

這樣寫,如果是后面的元素,計(jì)算它的開始位置實(shí)在不容易,因此你可以采用一種更現(xiàn)代的寫法。通過span(擴(kuò)展)關(guān)鍵字,意味著從這個(gè)元素應(yīng)該開始的位置擴(kuò)展幾列。

grid-column-start: span 2;

跨行也是同樣的寫法,只是通過grid-row-start來定義。

最后,給每一個(gè)元素定義它應(yīng)該占據(jù)的行列:

        .grid-container {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(4, minmax(150px, auto));
            grid-gap: .5rem;
        }
        .box-1 {
            grid-column-start: span 2;
            grid-row-start: span 2;
        }
        .box-2 {
            grid-column-start: span 2;
        }
        .box-4 {
            grid-row-start: span 3;
        }
        .box-5 {
            grid-row-start: span 2;
        }
        .box-6 {
            grid-column-start: span 2;
            grid-row-start: span 2;
        }

最最最后,給你的元素加上你最喜歡的背景圖吧!!

【參考資料】:Grid by Example

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/112207.html

相關(guān)文章

  • TypeScript 初識(shí) - 類

    摘要:抽象類抽象類做為其它字類的基類使用,一般不會(huì)直接被實(shí)例化。抽象類中可以包含具體實(shí)現(xiàn),接口不能。抽象類在運(yùn)行時(shí)是可見的,可以通過判斷。接口只能描述類的公共部分,不會(huì)檢查私有成員,而抽象類沒有這樣的限制。 一個(gè)普通的類 class Greeter { greeting: string; constructor(message: string) { this....

    鄒強(qiáng) 評(píng)論0 收藏0
  • 2017-06-29 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)精選如何在非項(xiàng)目中使用知乎專欄編碼規(guī)范最常被遺忘的性能優(yōu)化瀏覽器緩存?zhèn)€人文章譯統(tǒng)一樣式語(yǔ)言掘金新的開發(fā)者提及最多的個(gè)視頻眾成翻譯中文第期在中使用譯統(tǒng)一樣式語(yǔ)言掘金前端現(xiàn)狀答題救不了前端新人相學(xué)長(zhǎng)懟前端歲以 2017-06-29 前端日?qǐng)?bào) 精選 如何在非 React 項(xiàng)目中使用 Redux - 知乎專欄Javascript編碼規(guī)范 - Clearlove - SegmentFau...

    gaosboy 評(píng)論0 收藏0
  • 2017-06-28 前端日?qǐng)?bào)

    摘要:前端日?qǐng)?bào)精選我是如何實(shí)現(xiàn)的在線升級(jí)熱更新功能的張?chǎng)涡聆慰臻g鑫生活翻譯表單的運(yùn)用第期晉升評(píng)審的套路異步編程的四種方式黃博客精選組件設(shè)計(jì)和分解思考掘金中文譯使登錄頁(yè)面變得正確掘金前端從強(qiáng)制開啟壓縮探究插件運(yùn)行機(jī)制掘金個(gè)常用的簡(jiǎn) 2017-06-28 前端日?qǐng)?bào) 精選 我是如何實(shí)現(xiàn)electron的在線升級(jí)熱更新功能的? ? 張?chǎng)涡?鑫空間-鑫生活【翻譯】React 表單: Refs 的運(yùn)用【...

    QLQ 評(píng)論0 收藏0
  • #WEB安全基礎(chǔ) : HTML/CSS | 0x1初識(shí)CSS

    摘要:黑體我受夠這些難看的網(wǎng)頁(yè)了,我怎么才能讓它變得好看點(diǎn)你說。比如訪問百度,百度就會(huì)向你展示一個(gè)百度一下你就知道的頁(yè)面。黑體這是在瀏覽器中的顯示黑體我受夠這些難看的網(wǎng)頁(yè)了,我怎么才能讓它變得好看點(diǎn)?你說。 我答道:看來你得學(xué)點(diǎn)CSS了 學(xué)習(xí)這些東西只有一個(gè)原則,就是用你的腦袋想,用你的眼睛看,用的你手敲。很簡(jiǎn)單,對(duì)吧? 這次我寫了兩個(gè)網(wǎng)頁(yè) 看代碼就用到了你的眼睛, 下面是index.htm...

    番茄西紅柿 評(píng)論0 收藏0
  • 初識(shí)css層疊上下文

    摘要:內(nèi)聯(lián)元素層級(jí)在之上。不管是兄弟還是兒子,塊級(jí)元素的層級(jí)都是后來者居上,但內(nèi)聯(lián)元素始終在塊級(jí)元素之上。圖中粉色邊框黑色內(nèi)聯(lián)元素的是浮動(dòng)元素,它的塊級(jí)元素在所有塊級(jí)元素之上,但是它的內(nèi)聯(lián)元素在所有內(nèi)聯(lián)元素之下。 css中有很多反人類直覺的東西,所以在學(xué)css的過程中最大的樂趣不在于記住多少,而在于自己動(dòng)手做實(shí)驗(yàn),一步步顛覆你的直覺,初學(xué)css層疊上下文,做了一些簡(jiǎn)單的小實(shí)驗(yàn)一步步驗(yàn)證自己的...

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

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

0條評(píng)論

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