css面试题

文章目录

    • [一、CSS 选择器及其优先级](#一、CSS 选择器及其优先级)
    • [二、CSS 属性的继承性](#二、CSS 属性的继承性)
      • [1. 无继承性的属性](#1. 无继承性的属性)
      • [2. 有继承性的属性](#2. 有继承性的属性)
    • [三、Display 属性详解](#三、Display 属性详解)
      • [1. 常用属性值及其作用](#1. 常用属性值及其作用)
      • [2. block、inline 与 inline-block 的区别](#2. block、inline 与 inline-block 的区别)
    • 四、隐藏元素的方法对比
    • [五、 CSS3 新特性与动画](#五、 CSS3 新特性与动画)
      • [1. CSS3 新功能](#1. CSS3 新功能)
      • [2. Transition (过渡) vs Animation (动画)](#2. Transition (过渡) vs Animation (动画))
      • [3. 伪类 (:) 与 伪元素 (::)](#3. 伪类 (:) 与 伪元素 (::))
    • 六、伪类与伪元素的本质区别
    • [七、 文本溢出处理](#七、 文本溢出处理)
    • [八、 布局单位与响应式](#八、 布局单位与响应式)
      • [1. 常见单位](#1. 常见单位)
      • [2. CSS 预处理器与后处理器](#2. CSS 预处理器与后处理器)

一、CSS 选择器及其优先级

CSS 优先级由四个等级决定,通常表示为 (a, b, c, d) 权重。

选择器格式 类型 权重 (简易值) 示例
内联样式 Style 属性 1000 style="color: red;"
ID 选择器 #id 100 #header
类/属性/伪类 .class / [ref] / :hover 10 .menu, li:last-child
标签/伪元素 div / ::after 1 div, li:after
通配符/关系选择器 * / > / + 0 *, ul > li, h1 + p

注意事项:

  1. !important:声明的样式优先级最高,应慎用
  2. 后来者居上:如果优先级相同,最后出现的样式生效
  3. 继承最低:继承得到的样式优先级最低(趋于 0)
  4. 来源顺序:内联样式 > 内部样式 > 外部样式 > 浏览器用户自定义 > 浏览器默认

二、CSS 属性的继承性

1. 无继承性的属性

  • 布局/盒子模型display, width, height, margin, border, padding
  • 背景/定位background, position, float, clear, z-index, overflow
  • 文本装饰vertical-align, text-decoration, text-shadow, white-space

2. 有继承性的属性

  • 字体系列font-family, font-weight, font-size, font-style
  • 文本系列text-indent, text-align, line-height, word-spacing, letter-spacing, color
  • 其他visibility, cursor, list-style

三、Display 属性详解

1. 常用属性值及其作用

属性值 作用
none 元素不显示,并从文档流中移除
block 块类型。独占一行,可设宽高,默认宽度为父元素宽度
inline 行内元素。同行显示,不可设宽高,宽度由内容撑开
inline-block 行内块。同行显示,但可设置宽高
inherit 从父元素继承 display 值

2. block、inline 与 inline-block 的区别

  • block:独占一行,支持所有盒子模型属性(width/height/margin/padding)
  • inline :同行显示。设置宽高无效,水平方向的 margin/padding 有效,垂直方向无效
  • inline-block:结合了两者的特性,既能同行显示,又能设置宽高

四、隐藏元素的方法对比

方法 占据空间 响应事件 触发机制
display: none 触发 重排 (Reflow)
visibility: hidden 触发 重绘 (Repaint)
opacity: 0 重绘
position: absolute 移出可视区
clip-path: circle(0) 裁剪隐藏
transform: scale(0) 缩放隐藏

五、 CSS3 新特性与动画

1. CSS3 新功能

  • 选择器 :如 :not(), 伪类增强
  • 视觉 :圆角 (border-radius), 阴影 (box-shadow), 线性渐变 (gradient)
  • 布局 :多列布局 (multi-column), Flex 布局 , Grid 布局
  • 变换transform(旋转、缩放、倾斜、平移)

2. Transition (过渡) vs Animation (动画)

  • Transition :强调状态过渡,需要事件触发(如 :hover),只有起始和结束两个关键帧
  • Animation :强调循环和复杂序列,无需触发事件,支持 @keyframes 定义多个关键帧

3. 伪类 (😃 与 伪元素 (:😃

  • 伪类 :用于选择元素的特定状态(如 :hover, :active
  • 伪元素 :用于创建不在 DOM 树中的虚拟元素(如 ::before, ::after)。CSS3 规范建议伪元素使用双冒号

六、伪类与伪元素的本质区别

维度 伪类 (Pseudo-classes) 伪元素 (Pseudo-elements)
逻辑本质 已有元素的特殊状态 不存在于 DOM 的虚拟元素
数量关系 一个元素可以同时拥有多个状态 通常用于选取元素的特定部分或生成额外内容
标准语法 单冒号 : 双冒号 ::
是否产生新内容 ❌ 否,只改变现有元素样式 ✅ 是,可以插入新内容(需配合 content
典型代表 :hover, :active, :first-child, :nth-child ::before, ::after, ::first-line, ::selection

七、 文本溢出处理

  • 单行文本溢出
css 复制代码
.single-line {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
  • 多行文本溢出 (WebKit)
css 复制代码
.multi-line {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 显示行数 */
  overflow: hidden;
}

八、 布局单位与响应式

1. 常见单位

  • px:绝对像素,物理像素与设备相关
  • %:相对于父元素对应属性的百分比
  • em:相对于父元素的字体大小
  • rem :相对于根元素 (html) 的字体大小,响应式首选
  • vw/vh:相对于视口(Viewport)宽高的 1%

2. CSS 预处理器与后处理器

  • 预处理器 (Sass/Less):提供变量、嵌套、Mixin 等编程特性,提高代码复用性
  • 后处理器 (PostCSS) :如 autoprefixer,在编译后自动添加浏览器私有前缀,处理兼容性
相关推荐
Thomas21432 小时前
chrome开启CDP的方法
前端·chrome
前端 贾公子2 小时前
[特殊字符] 定义即路由:definePage宏如何让uni-app路由配置原地起飞?
前端
吴声子夜歌2 小时前
小程序——跳转API
服务器·前端·小程序
m0_502724952 小时前
CSS position 属性的所有取值(2024最新)
前端·css
银河麒麟操作系统2 小时前
桌面通用(全架构)【IE浏览器内核插件与 Chrome 内核浏览器插件的区别及兼容性分析】技术文章
前端·chrome
不知名。。。。。。。。2 小时前
仿muduo库实现高并发服务器--日志的书写和套接字Socket的实现
前端
夫琅禾费米线2 小时前
React Hook Form + Zod:优雅构建 React 表单
前端·javascript·react.js·typescript
坐吃山猪2 小时前
React+TypeScript Agent开发规范
前端·react.js·typescript
Amumu121382 小时前
CSS3: 3D转换、浏览器私有前缀
css·3d·css3