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阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • 简介 CSS Grid布局 (又名"网格"),是一个基于二维网格布局的系统,旨在改变我们基于网格设计的用户界面方式...
    咕咚咚bells阅读 2,495评论 0 4
  • Grid 布局的属性分成两类。一类定义在容器上面,称为容器属性;另一类定义在项目上面,称为项目属性。 容器属性 1...
    sullay阅读 528评论 0 2
  • 简言 CSS网格布局(Grid)是一套二维的页面布局系统,它的出现将完全颠覆页面布局的传统方式。传统的CSS页面布...
    毛三十阅读 1,692评论 2 4
  • 槐花炒蛋 这几天上班,看到路边有人在摘槐花,今天下班时我也拿了袋子,先是看到单位院子里有一棵槐树,花不多,我把上面...
    寒香js阅读 320评论 0 1
  • 高考是一个分水岭吧,一些人金榜题名进去更高一级的学府开始深造,另一些人名落孙山开始走向社会。 我在一个小城市,所以...
    色奶棕阅读 578评论 1 1