CSS面试相关内容

112 阅读2分钟

1. 格式化上下文

格式化上下文指的是,页面中的一块渲染区域内部的子元素是如何排版以及相互作用的。

1.1 BFC 块级格式化上下文

BFC渲染规则

  • 内部盒子垂直放置。
  • 垂直方向的距离由margin决定,一个BFC中的两个相邻盒子会发生margin重叠。
  • BFC不会与浮动重叠
  • 计算BFC高度时,也要计算浮动元素。

如何创建BFC

  • overflow不为visible
  • 设置浮动
  • 设置定位absolute 或 fixed
  • 把非块级元素定义成块级元素。

应用场景

  1. 自适应两栏布局:BFC区域不会和浮动重叠。左侧浮动定宽,右侧触发BFC即可。
  2. 浮动造成的父元素高度塌陷:给父元素触发BFC。
  3. 防止margin合并:给其中一个包裹一层触发BFC。

1.2 IFC 行内格式化上下文

IFC 应用场景

  • 水平居中:当一个块要在环境中水平居中时,设置其为 inline-block 则会在外层产生 IFC,通过 text-align 则可以使其水平居中。
  • 垂直居中:创建一个 IFC,用其中一个元素撑开父元素的高度,然后设置其 vertical-align: middle,其他行内元素则可以在此父元素下垂直居中。

2. 常见布局

2.1 两栏布局

  • float + overflow(BFC)
  • float + margin
  • flex

2.2 三蓝布局

  • 两侧float + 中间margin
  • 两侧absolut + 中间margin
  • flex

3. 回流和重绘

  1. 回流:是指当DOM元素添加、删除、尺寸位置发生变化时,进行回流得到节点的位置大小等信息。
  2. 重绘是指当颜色文本阴影等样式修改时,根据信息重新绘制。或者当触发了回流时,因为节点的位置等信息改变了,所以也会进行重绘。
  3. 如何减少
  • style少用
  • 少用table

4. 元素水平居中的方法有哪些

  • 定位 + margin:auto
  • 定位50% + margin负值
  • 定位50% + transform -50%
  • flex布局/ grid布局

5. CSS3增加了哪些新特性

5.1 选择器

5.2 新样式

  • 边框:border-radius
  • 阴影: box-shadow
  • 背景: background-clip(确定画区);background-size

5.3 transition过度

5.4 transform

5.5 animation

5.6 渐变linear-gradient/radial-gradient