CSS Grid 二维网格结构布局

CSS Grid 网格布局可以将包裹元素任意组合成不同的网格,进而快速、便捷的对页面结构进行布局,提高工作效率。当然了,每一种布局方法都有各自优势,所以,我们无需纠结使用什么方法,而是在什么条件下使用什么方法。目的只有一个,高效、便捷。

新的方法与属性的产生只会让我们更为快速、便捷地处理当前需求;我们在一定的条件下,使用合理的方法,进而高效、便捷地完成任务。

网页布局这是创建Web页面的基础结构操作,对于当下市场上N多种UI封装包共享,一定程度上我们很少操作HTML及其CSS相关工作,更多的前端工程师们精力放在了JavaScript(及其相关框架),这也是正常现象,同时也因"环境"而定。

不多废话,一起看看CSS中的Grid布局方法,或许以后有用。以前看到过,属性太多,没怎么看,今天休假,索性心静下来慢慢看。

Web页面结构布局是创建新页面的基础,它是数据信息呈现的骨架,方法很多,无论用什么方法,我们最终呈现出来的结果都一样,当然了,这是对于用户而言,用户不会看你的页面结构是如何布局,用什么方法;他们更多在意的是视觉以及数据呈现结构是否符合自己的浏览习惯。而身为前端开发者👨‍💻而言,关注的是,能否快速实现效果,能否可扩展亦或便于二次修改。

CSS Grid网格布局

由于其属性相对比较多,所以我们由简至繁去了解,不然急性子真看不下去🤭。

一、HTML结构层(父元素与子元素)

创建一个640宽度的Ul->Li结构

CSS Grid网格布局

<Ul><Li>1</Li><Li>2</Li><Li>3</Li><Li>4</Li><Li>5</Li><Li>6</Li></Ul>

// ULWidth:640px;Display:Grid;Grid-Template:1fr 1fr/1fr 1fr;// LI

我们通过父容器Display:grid声明后,那么其下子元素则听从其父的安排,怎么感觉跟人一样🤣,让你往东你不能往西...

示例中Grid-Template是一种简写,即:Grid-Template-Rows 与Grid-Template-Columns

Grid-Template:Auto 1fr / Auto 1fr Auto;// 等同与Grid-Template-Rows:Auto 1fr;Grid-Template-Columns:Auto 1fr Auto;Grid-Template-Areas:None;

是行与列的一种分配方式,犹如我们在使用HTML中Table(表格)元素一般,行与列划分。

其中1fr,Fr是Fraction(读音:[ˈfrækʃn] N:小部分; 少量; 一点儿; 分数; 小数;)的缩写,提供的一个单位,和我们在使用Flex布局时,子元素设置Flex:1 | 2一个性质,是一个比例值。

二、父元素拥有哪些属性权限对其子元素进行操控

1、Grid-Template

比如,我们创建一个2行(高度100px与80px)3列(第一个和最后一个宽度为100px)的布局结构

那么我们通过Grid-Template属性进行操作,上面说了Grid-Template是3个属性的一个简写或缩写

Grid-Template-Columns属性是定义其列的宽度,

Grid-Template-Rows属性定义行的高度

CSS Grid 网格布局(2行3列)

Width:640px;Display:Grid;Grid-Template:100px 80px/100px Auto 100px;// /

2、Grid-Gap

如果我们需要对网格间设置间隔宽度,那么就可以使用Grid-Gap属性对其操作,它和Grid-Template一样,也是另外2个属性的简写,即:

Grid-Row-Gap属性设置其行与行的间隔

Grid-Column-Gap属性则设置其列与列的间隔

类似我们常用的Padding属性(Padding: 20px 10px)一般,只不过对于Grid网格布局属于行与列的结构,所以,它的属性值对应顺序是行与列。

按我们常说的口语顺序即可,几行几列,很少见说几列几行吧。

所以,其表示方法如:

Grid-Gap:20px 15px;// <行><列>

CSS Grid 网格布局 Grid-Gap

Width:640px;Display:Grid;Grid-Template:100px 80px/100px Auto 100px;Grid-Gap:20px 15px;

3、Repeat()

Repeat字面意思我们就可以看出其属性的作用,基于一定值我们可以通过其操作,避免重复,简化操作和Js中函数一般,避免重复代码堆积,造成不必要的劳动。

例如我们创建一个2行3列的布局结构,要求行高100px,宽度等比。

CSS Grid网格布局 Repeat()

那么基于上述及其上上述,我们就可以这样写:

Width:640px;Display:Grid;Grid-Template:Repeat(2,100px)/Repeat(3,1fr);Grid-Gap:20px 15px;

这样避免重复值操作,当然1~2个无所谓,多个网格呢?就麻烦了。

Repeat()其参数:第一个参数是重复次数第二个是其属性值

4、Grid-Auto-Flow

在对其划分网格后,我们可以通过Grid-Auto-Flow控制子元素如何排列于网格。

默认是横向排列,其属性值为Row,上述示例均为横向转行排列,那么我们看看纵向效果排列所呈现的效果,看里面的数字。

CSS Grid 网格布局 Grid-Auto-Flow

我们设置Grid-Auto-Flow属性值为Column,结构排列将由原来的"123456"变更为"135246";

Grid-Auto-Flow:Column;

详细的参考官方文档...

三、Grid子元素项目上操作权限

1、Grid-RowGrid-Column

Grid-RowGrid-Column其表示法1/3方式,和上述一样属于属性(Grid-Row-Start/Grid-Row-End及其Grid-Column-Start/Grid-Column-End)简写方式,效果一样。

即子项目定位于网格线开始与结束位。

例如,我们让其第一个子项目行始于1结束于第3个网格线列由1至2,基于父级我们设置的示例,这里我们删除一个子项,为了显示效果。

CSS Grid 网格布局 Grid-Row Grid-Column

Ul{Width:640px;Display:Grid;Grid-Template:Repeat(2,100px)/Repeat(3,1fr);Grid-Gap:20px 15px;Grid-Auto-Flow:Column;Font-Size:16px;Color:White;}Li:first-Of-Type{Grid-Row:1/3;Grid-Column:1/2;Background-Color:Red;Color:White;}

其中子项目中的Grid-RowGrid-Column表示法等同于<开始位>/<结束位>

Grid-Column-Start: 1;

Grid-Column-End: 2;

Grid-Row-Start: 1;

Grid-Row-End: 3;

2、Span

表示其子项跨域数,例如上述效果我们我们也可以这样实现。

Grid-Row:1/ Span 2;Grid-Column:1/2;

至于Justify-Content、Align-Content等等在Flex布局中我们已经认识了,这里就不再描述了。

好了,就到这里,这篇文章貌似写了好几个小时,更多的大家创建Demo去研究;同时更多属性方法跨域参考W3C官方文档去研究。

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

推荐阅读更多精彩内容

  • 雨点爱上了大地,故作矜持! 需要风婆婆牵线做媒! 煽动起雷姥爷向大地传递, 它要投怀的爱意! 六月的季节,人们躲在...
    粉色的桃林阅读 291评论 20 31
  • 001 培育好久的花终于开了,这次花期很长,小小一朵,花香溢满了整个阳台,花朵饱满又好看,没有小虫子叮咬,家里的猫...
    不吃姜小姐阅读 1,251评论 0 3
  • 好朋友是什么,是除了你父母你的亲人在这个世界上最关心你的人,你的喜怒哀乐都有她陪,你们一起经历,一起成长...
    钟呓阅读 141评论 0 0
  • JSONP(只能发送get请求,不支持post、put、delete;不安全xss攻击) jsonp的详细介绍在...
    Ar_8be6阅读 218评论 1 6