css

1. CSS盒模型

CSS盒模型是网页布局的基础概念,描述了每个元素在页面中所占空间的计算方式。

  • 标准盒模型widthheight 只包含内容区域,不包括 paddingbordermargin
  • IE盒模型widthheight 包含内容、paddingborder,但不包括 margin
  • 可通过 box-sizing 属性切换:
    • content-box(标准盒模型)
    • border-box(IE盒模型)

2. CSS选择器优先级

CSS选择器优先级从高到低为:

  1. !important(最高优先级,应谨慎使用)
  2. 内联样式(style属性)- 权重1000
  3. ID选择器 - 权重100
  4. 类选择器、属性选择器、伪类 - 权重10
  5. 元素选择器、伪元素 - 权重1
  6. 通配符选择器 - 权重0

相同优先级时,后定义的样式会覆盖先定义的。

3. 隐藏元素的方法

常用的隐藏元素方法包括:

  • display: none - 元素不渲染,不占据空间
  • visibility: hidden - 元素不可见,但仍占据空间
  • opacity: 0 - 元素透明,仍占据空间且可交互
  • position: absolute; left: -9999px - 将元素移出可视区域
  • clip-path: polygon(0 0, 0 0, 0 0, 0 0) - 裁剪元素使其不可见
  • transform: scale(0) - 缩放为0

4. px和rem的区别

  • px(像素)
    • 绝对单位,固定大小
    • 不会根据用户设置或设备尺寸自动调整
  • rem(根元素的字体大小)
    • 相对单位,相对于HTML根元素的字体大小
    • 1rem等于根元素的font-size值
    • 更适合响应式设计,便于统一调整

5. 重绘和重排的区别

  • 重排(Reflow)
    • 重新计算元素的几何属性(位置、大小等)
    • 影响后续元素布局
    • 开销较大
  • 重绘(Repaint)
    • 仅重新绘制元素外观(颜色、背景等)
    • 不影响布局
    • 开销相对较小
  • 重排一定会引起重绘,但重绘不一定引起重排

6. 水平垂直居中的方式

常见的居中方法包括:

  1. Flexbox

    .container {
      display: flex;
      justify-content: center;
      align-items: center;
    }
    
  2. Grid

    .container {
      display: grid;
      place-items: center;
    }
    
  3. 绝对定位 + transform

    .element {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
    
  4. 绝对定位 + margin

    .element {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
      width: fit-content;
      height: fit-content;
    }
    

7. CSS属性的继承性

  • 可继承属性

    • 文本相关:colorfont-familyfont-sizeline-height
    • 列表相关:list-stylelist-style-type
    • 表格相关:border-collapse
  • 不可继承属性

    • 盒模型相关:widthheightmarginpaddingborder
    • 定位相关:positiontopleftrightbottom
    • 背景相关:backgroundbackground-color

8. CSS预处理器

CSS预处理器是增强CSS功能的工具,常见的有:

  • Sass/SCSS

    • 支持变量、嵌套、混合(mixin)、函数等
    • 提供更强大的编程能力
  • Less

    • 类似Sass,语法更接近原生CSS
    • 支持变量、嵌套、混合等
  • Stylus

    • 更加灵活的语法
    • 支持省略大括号和分号

预处理器的优势:

  • 提高代码复用性和可维护性
  • 支持模块化开发
  • 提供编程特性(变量、函数等)
  • 减少重复代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容