前端面试题-CSS

1. 盒模型

  • ⻚⾯渲染时, dom 元素所采⽤的 布局模型。可通过 box-sizing 进⾏设置。根据计算宽⾼的区域可分为
    • content-box ( W3C 标准盒模型)
    • border-box ( IE 盒模型)
    • padding-box
    • margin-box (浏览器未实现)

2. BFC

  • 块级格式化上下⽂,是⼀个独⽴的渲染区域,让处于 BFC 内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。
  • IE下为 Layout ,可通过 zoom:1 触发

触发条件:

  • 根元素
  • position: absolute/fixed
  • display: inline-block / table
  • float 元素
  • ovevflow !== visible

规则:

  • 属于同⼀个 BFC 的两个相邻 Box 垂直排列
  • 属于同⼀个 BFC 的两个相邻 Box 的 margin 会发⽣重叠
  • BFC 中⼦元素的 margin box 的左边, 与包含块 (BFC) border box 的左边相接触(⼦元素 absolute 除外)
  • BFC 的区域不会与 float 的元素区域重叠
  • 计算 BFC 的⾼度时,浮动⼦元素也参与计算
  • ⽂字层不会被浮动层覆盖,环绕于周围

应⽤:

  • 阻⽌ margin 重叠
  • 可以包含浮动元素 ------ 清除内部浮动(清除浮动的原理是两个 div 都位于同⼀个 BFC 区域之中)
  • ⾃适应两栏布局
  • 可以阻⽌元素被浮动元素覆盖

3.层叠上下⽂

  • 元素提升为⼀个⽐较特殊的图层,在三维空间中 (z轴) ⾼出普通元素⼀等。

触发条件

  • 根层叠上下⽂( html )
  • position
  • css3 属性
    • flex
    • transform
    • opacity
    • filter
    • will-change
    • webkit-overflow-scrolling

层叠等级:层叠上下⽂在z轴上的排序

  • 在同⼀层叠上下⽂中,层叠等级才有意义
  • z-index 的优先级最⾼

4. 居中布局

⽔平居中

  • ⾏内元素: text-align: center
  • 块级元素: margin: 0 auto
  • absolute + transform
  • flex + justify-content: center

垂直居中

  • line-height: height
  • absolute + transform
  • flex + align-items: center
  • table

⽔平垂直居中

  • absolute + transform
  • flex + justify-content + align-items

5. 选择器优先级

  • !important > ⾏内样式 > #id > .class > tag > * > 继承 > 默认
  • 选择器 从右往左 解析

6.去除浮动影响,防⽌⽗级⾼度塌陷

  • 通过增加尾元素清除浮动
  • :after /
    : clear: both
  • 创建⽗级 BFC
  • ⽗级设置⾼度
  • link 功能较多,可以定义 RSS ,定义 Rel 等作⽤,⽽ @import 只能⽤于加载 css
  • 当解析到 link 时,⻚⾯会同步加载所引的 css ,⽽ @import 所引⽤的 css 会等到⻚⾯加载完才被加载
  • @import 需要 IE5 以上才能使⽤
  • link 可以使⽤ js 动态引⼊, @import 不⾏

8. CSS预处理器(Sass/Less/Postcss)

  • CSS 预处理器的原理: 是将类 CSS 语⾔通过 Webpack 编译 转成浏览器可读的真正 CSS 。在这层编译之上,便可以赋予 CSS 更多更强⼤的功能,常⽤功能:
    • 嵌套
    • 变量
    • 循环语句
    • 条件语句
    • ⾃动前缀
    • 单位转换
    • mixin 复⽤

9.CSS动画

transition: 过渡动画

  • transition-property : 属性
  • transition-duration : 间隔
  • transition-timing-function : 曲线
  • transition-delay : 延迟
  • 常⽤钩⼦: transitionend

animation / keyframes

  • animation-name : 动画名称,对应 @keyframes
  • animation-duration : 间隔
  • animation-timing-function : 曲线
  • animation-delay : 延迟
  • animation-iteration-count : 次数
    • infinite : 循环动画
  • animation-direction : ⽅向
    • alternate : 反向播放
  • animation-fill-mode : 静⽌模式
    • forwards : 停⽌时,保留最后⼀帧
    • backwards : 停⽌时,回到第⼀帧
    • both : 同时运⽤ forwards / backwards
  • 常⽤钩⼦: animationend
  • 动画属性: 尽量使⽤动画属性进⾏动画,能拥有较好的性能表现
    • translate
    • scale
    • rotate
    • skew
    • opacity
    • color
相关推荐
寅时码2 小时前
React 之死·终章:一个 useRef,把闭包陷阱、依赖数组、漫天 rerender 全送走
前端·react.js·ai编程
不好听6132 小时前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
wordbaby2 小时前
为什么刷新页面就 404?聊聊 SPA 路由与 Nginx 的那点事
前端
不好听6132 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹2 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6132 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue2 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue2 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn3 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
Csvn4 小时前
🧩「找不到模块」排查全记录——Monorepo 下 TypeScript 路径别名的 5 种「不通」与根治方案
前端