深入CSS | 青训营

51 阅读2分钟

深入CSS

哪条规则生效

涉及选择器的优先级问题,看选择器的特异度(即计算其id、类、标签个数)

CSS中与文字相关的属性可以继承,但与模型相关的不行。

若想让不可继承的值从父级继承,我们可以使用显式继承。

0393f1085ac6e66b08cb8ad707e6730.jpg0b1bcfe6c3c9fd50fd6db86bd1d75ce.jpg

若从元素父级往上找还是没有找到,会用到初始值。

48160b3f5eb8f579ddebf0c07bcfbf6.jpg

CSS求值过程(复杂)

4dc495b3fb7375ce4702c906d46d298.jpg b66909267c5d20a48b398fe73700831.jpg 694307aebb88a0c4caac9403f8f7cd9.jpg

布局

确定内容的大小和位置的算法
依据元素、容器、兄弟节点和内容等信息来计算

三种布局方式

常规流:行级、块级、表格布局、FlexBox、Grid布局
浮动、绝对定位

盒模型 37f5e0824a219e92a93061acb3208be.jpg

高度与宽度

f77eb9d8585c20a6636299e756759e3.jpg7068832aaefd441ccd5638110a9f4c7.jpg

padding

2f141e5e275402b364828449766895c.jpg

border(边框)

bd32178b0f2dcedd6713a762cb876e9.jpgaece609f2726bf6209a4ef29c97b9fe.jpg

当四条边框颜色不同时,边框呈倒梯形,即连接处斜着。
当高度宽度都设置为0时,可做各种各样的现状

margin

125709d04fefa231d29944520d909b3.jpg

beec20c45fe5d6c2507ae9942d0f8b2.jpge98eb605c5c6f32c043718d5cfe6a5a.jpg

overflow

若文字超出容器框,可使用overflow。

05f14cf8db325117978a2a68ad3cc03.jpg

块级 VS 行级

43253ff703e391f0db2aaefbc396db5.png5e21a65066d8f78ac34f80fef7c7abf.png 属性

5db29eaae723ebf45d4558eef418a1b.png

排版

如果一个盒子里全是行级,那块级对应的div创建了一个行级上下文。 处理过长不换行的单词(即超出逻辑与范围),使用overflow-wrap将其换行。 973308c03a4fbc1235d6d92a013e6b9.png5f0e4a08dc3992d03114c5e186cd9ad.png

BFC内的排版规则

86fdadeafd7f44e5e9fd353dcce8761.png

若不想让两个盒子合并,则可以将盒子分散在两个不同的盒子里。

在常规流内,子级盒子内只能都是块级(从上到下)或都是行级(从左到右)。若行级和块级都存在,因为父级不允许块级和行级并存,所以会创建两个匿名的盒子来包裹这两段文字以方便排版。

2c7ed8d3f7f833ea48d23751a8fe906.png

Flex Box

因为行级和块级不能实现更高级或更灵活的布局方式,所以CSS提出了新的排版方式也就是Flex Box。

8e5f83880c22cccc10a988254df046c.png47511159ca25bd1206184c5dcd3f1d2.png 根据内容确定排版位置,有时不能对齐,引入主轴与侧轴的概念。

3be14a4fcf77893372915fb95dce9ea.png

两种方式 第一种在主轴

de9c199d4803183f5dbf865ed4aed40.png

第二种侧轴基线对齐

54c2d9bd6d005f19fa92f39053ae3dd.png

Flexibility

6896217cfd0d28d833ae1a31ddd6d49.png52bb251d537710dc8af4e6895bbf137.png flex属性表示语法

08a5eafb10295820468337d0003a91b.png

Grid布局

Flex Box单一、一维的布局,而Grid布局是二维的。

image.png

划分网格

image.png 确定列与行的划分后,将子元素放入网格线指定的网格。

image.pngimage.png可通过浏览器开发工具检查网格线

float浮动

实现文字环绕的效果 image.png

position

image.png

image.pngimage.png

学习CSS的几点建议

  充分利用MDN和W3C CSS规范
  保持好奇心,善用浏览器的开发者工具
  持续学习,CSS新特性还在不断出现