CSS学习笔记
- line-height 继承规则:
- 当父元素的
line-height
是具体的数值时,子元素直接继承这个数值。
- 当父元素的
line-height
是比例或小数值时,子元素继承这个比例,并根据自己的font-size
计算line-height
。
- 当父元素的
line-height
是百分比时,子元素继承的是根据父元素font-size
计算出来的实际值。
- 文本框中输入文本展示在 div 中不换行问题:
white-space: pre-wrap
。
- 设置如何处理元素内的空白字符 white-space:
normal(默认)
、nowrap
、pre
、pre-wrap
、pre-line
、break-spaces
。

- 多行文本父元素确认高度,垂直居中:
disaply: table-cell
; vertical-align: middle
。
- overflow:
visible(默认)
、auto
、hidden
、scroll
、inherit
。
- position:
static(默认)
、relative
、absolute
、fixed
、sticky
、inherit
。
- 指定元素的宽高比 aspect-ratio:
auto(默认)
、<number [0,∞]>
、<number [0,∞]> / <number [0,∞]>
。
- 使用关键字
auto
时,元素的宽高比将根据其自身的大小计算得出。这对于某些本身就固有的宽高比的元素非常有用,比如 <img>
元素。
- 超链接的伪类设置顺序:
link
、visited
、hover
、active
。
- 原因在于 CSS 的层叠规则以及这些伪类在用户交互过程中的自然顺序。如果不按照推荐的顺序编写,可能会导致样式层叠的问题,进而影响最终的样式呈现。
- 子元素的
padding
、margin
使用百分比时,是根据父元素的宽度来计算的。
[class *= "a-"]
匹配类名中包含"a-"的元素;[class ^= "a-"]
匹配类名以"a-"开头的元素。
word-break: break-all
:截断单词换行;overflow-wrap: break-word
:不截断单词换行。
- 在客户端嵌入页面中使用
-webkit-app-region: drag
实现窗口拖动效果时,会对页面中的某些交互元素(如按钮、链接等)造成影响,因为浏览器会将鼠标事件捕获为拖动事件,而不是传递给这些元素。需要为响应事件的子元素添加-webkit-app-region: no-drag
来覆盖默认的行为。
- IOS 获取底部安全区域距离:在
iOS >= 11.2
使用constant(safe-area-inset-bottom)
;在iOS >= 11.2
使用env(safe-area-inset-bottom)
。
pointer-events: none
设置元素不接收任何鼠标事件。
- 用于控制打印输出的颜色调整行为 print-color-adjust:
economy(默认)
、exact
。
economy
:允许对元素样式进行适当的调整;exact
:尽力保留元素样式,不考虑性能及成本因素。
- CSS 像素单位:
px
、pt
、em
、rem
、vw
、vh
。
px
:表示物理像素单位,在标准的 96dpi 显示器上,1px 等于 1/96 英寸。在高分辨率设备上,1CSS 像素可能对应多个物理像素;
pt
:固定的物理单位,基于物理尺寸而非像素,1pt 等于 1/72 英寸,不随屏幕分辨率变化;
em
:相对于当前元素字体大小的单位;
rem
:相对于根元素字体大小的单位;
vw
、vh
:视口宽度和高度的百分比;
- 紧接兄弟选择器
+
:有一个共同的父元素,并且紧跟在特定元素之后;通用兄弟选择器~
:有一个共同的父元素,并且位于特定元素之后。
- CSS 特性查询:
@supports
,如@supports (display: grid)
。