CSS網格教程:媽媽我想吃 CSS 烤漢堡!

今天,我們來探討一個有關 CSS 網格的簡短教程。沒有比食物更好的溝通方式了,所以我們一起來做一個漢堡練習吧~

圖1.最終成果


什么是 CSS 網格?這是一個內置的 CSS 框架,可讓您創建布局并且不需要局限于第三方框架(Bootstrap,Foundation等)的束縛。簡短捷說我們先從小制作漢堡示例開始……

首先,我們為”漢堡“創建一個基本容器,并設置其樣式 display:grid?

.burger?{

display:grid;

width:275px;

height:225px;

}

圖2.漢堡容器


現在我們設想一個網格里的x軸(列)和y軸(行),y方向(行)可以決定這個表格中到底疊放多少層元素以及每層元素的高度。一個漢堡,底層是面包,中間層:牛肉、生菜、洋蔥、西紅柿,頂層是面包,那么我們就需要6行。

使用 grid-template-rows 屬性,可以為每一行命名并分配行高比例。例如,我們希望漢堡的頂部面包高度是底部面包高度的2倍,我們就可以設置頂層高度為 6fr 底層高度為 3fr。

grid-template-rows:[R1] 6fr [R2] 1fr [R3] 1fr [R4] 1fr[ R5] 3fr [R6] 3fr;

需要注意的是,”漢堡“容器中的每一層元素必須是div,不然將無法看到網格效果。我們也需要給每一層元素定義他y方向(行)所占據的空間,例如,”漢堡“頂層的面包,我們需要定義它占據從第[R1]行到[R2]行(但是鑒于在本例中,漢堡容器內行的數量,與我們在定義容器 grid-template-rows 的行數量相同,所以gird-row屬性也可以省略)。同時也給這些層的div設置背景色,以方便我們查看。

.ingredient_bun--top {background-color:var(color);? grid-row:R1 / R2;}

圖3.定義行


現在,我們創建x方向(列),這將決定"漢堡"中的元素橫向上應該如何擺放。現在我希望漢堡夾層中的番茄和肉餅在橫向上稍微出來一點點。

grid-template-columns:[C1]1fr[C2]2fr[C3]5fr[C4]2fr[C5]5fr[C6]2fr[C7]1fr;


接下來,我們使用 gird-column 來定義每一層元素在x方向(橫向)上所占據的空間。


圖4.定義列


使用 grid-area 屬性來重寫 gird-row 和 gird-column,將兩個屬性進行合并。合并后的 ?grid-area 屬性的格式為:row-start / column-start / row-end / column-end。

.ingredient_bun--top {

background-color:var(color);??

?grid-row:R1/C2/R2/C7;

}

現在,我們得到了”漢堡“中所有元素的大致位置,接下來繼續完善這些元素的細節,比如顏色,面包的圓角等。而且可以在牛排上放置一個倒三角,以實現完整的芝士效果。


圖5.詳細信息


我們可以用如下顏色來完善漢堡中的元素...

最終我們得到了如下的漢堡~


圖6. CSS 網格漢堡


你可以隨意調整漢堡的尺寸,并且網格容器內所有的元素都會按照我們之前定義比例自動進行縮放。可以通過如下鏈接查看最終實現的所有代碼:演示CSS Grid Burger

演示CSS Grid Burger

原文作者:Dora Chan

原文鏈接:https://blog.prototypr.io/css-grid-burger-b2df6991c194




喜歡我們的童鞋可以關注我們

● 微 信 公 眾 號 ●

— 來自PxCook 官方團隊 ,專注多年設計研發

?效率協作工具

.burger?{display:grid;width:275px;height:225px;}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • 簡介 CSS Grid布局 (又名"網格"),是一個基于二維網格布局的系統,旨在改變我們基于網格設計的用戶界面方式...
    咕咚咚bells閱讀 2,538評論 0 4
  • Grid 布局的屬性分成兩類。一類定義在容器上面,稱為容器屬性;另一類定義在項目上面,稱為項目屬性。 容器屬性 1...
    sullay閱讀 542評論 0 2
  • 簡言 CSS網格布局(Grid)是一套二維的頁面布局系統,它的出現將完全顛覆頁面布局的傳統方式。傳統的CSS頁面布...
    毛三十閱讀 1,715評論 2 4
  • 槐花炒蛋 這幾天上班,看到路邊有人在摘槐花,今天下班時我也拿了袋子,先是看到單位院子里有一棵槐樹,花不多,我把上面...
    寒香js閱讀 332評論 0 1
  • 高考是一個分水嶺吧,一些人金榜題名進去更高一級的學府開始深造,另一些人名落孫山開始走向社會。 我在一個小城市,所以...
    色奶棕閱讀 588評論 1 1