深入CSS(下)学习笔记| 青训营

61 阅读2分钟

深入CSS (下) - 掘金 (juejin.cn)

笔者在学习该课程后,对课程中的部分知识点进行总结梳理,给出自己的理解与分析,并给予其他同学一些建议

块级和行级(盒)

块级:不能和其他盒子并列(同一行)摆放;适合所有的盒模型属性

行级:和其他行级盒子放在一行或拆开成多行;盒模型中的width、height不适用

块级元素生成块级盒子(body、article、div、main、section、h1-6、p、ul、li等)

行级元素生成行级盒子,内容分散在多个行盒中(span、em、strong、cite、code等)

也可以显示声明:display:block/inline/inline-block(本身是行级,可以放在行盒中;可以设置宽高;作为一个整体不会被拆散成多行)/none(排版时完全被忽略)

Flex box

一种新的排版上下文

可以控制子级盒子的:摆放流向、摆放顺序、盒子宽度和高度、水平和垂直方向的对齐、是否允许拆行

可以设置子项的弹性:容器有剩余空间时,会伸展;空间不够时,会收缩

flex-grow:有剩余空间时的伸展能力

flex-shrink:空间不足时的收缩能力

flex-basis:没有伸展或收缩时的基础长度

实例分析

下例中,ABC的基础宽度为固定的100px,A、B两者的flex-grow(分别为2、1,即将剩余空间按照2:1再分配给A、B;

image.png

  一些简易写法:(详情可查官方文档)

image.png

Grid布局

display:grid使元素生成一个块级的grid容器

使用grid-template相关属性将容器划分为网格

设置每一个子项占哪行/列

实例分析

grid-template-columns表示对列进行划分

grid-template-rows表示对行进行划分

100px 100px 200px:划分为三份,每份固定px值

30% 30% auto:划分为三份,前两份各占30%,auto表示自动填满剩余部分

1fr:表示占剩余部分的一份

image.png 指定子项位置

先将网格线编号为1、2、3……

再指定子项的网格线起始、终止位置

如a块的grid-row-start:1指定行线的起始编号为1,其余同理

也可以简写为grid-area:1/1/3/3

image.png

课程总结和建议

本课程在CSS的基础知识上,深入学习CSS的布局方法,如行级排版上下文,flex排版上下文、grid排版上下文等,面向的对象为有CSS基础的同学,入门的同学可以提前学习CSS中的基础概念CSS - 学习 Web 开发 | MDN (mozilla.org)再观看此视频。对于后续CSS的学习,可以充分利用MDN和W3C CSS规范,善用浏览器的开发者工具,持续学习CSS的新特性

部分截图、内容来源于课程