Redbattle
踩坑
环境
项目
配置
知识点
踩坑
环境
项目
配置
知识点
  • 浏览器/网络
  • HTML
  • CSS
    • JS
    • Vue
    • ES6
    • TS
    • 格式化上下文
    • 工程化
    • 常用 Web 坐标转换
    • 算法
    • 安全性
    • CSS 选择器
    • CSS 函数
    • CSS 属性
    • CSS @
    • CSS 过渡与动画
    • CSS 预处理器
    • knowledge
    2022-01-21

    CSS

    # 重绘重排

    • 重排,dom 的变化影响到了几何属性,浏览器重新计算元素的几何属性,其他元素的几何属性和位置也会发生变化,浏览器需要重新构造渲染树
    • 引起重排,规模尺寸,布局,隐藏显示
    • 重绘,浏览器将受影响的元素重新绘制到屏幕上的过程称为重绘
    • 引起重绘,改变元素外观属性,比如 color,background-color
    • 重排必定重绘,重绘不一定重排
    • 优化
      • 减少重绘重排的操作,合并多次 DOM 和样式的修改操作;
      • 使用 fragment 创建虚拟节点
      • 将需要多次重排重绘的元素 position 属性改为 absolute 或 fixed,使其脱离文档流

    # 盒子模型

    • 水平垂直居中方法:
      • display: flex
      • display: table-cell
      • js
      • 定位
    • 标准盒模型,大小=content+padding+border+margin。box-sizing: content-box
    • ie 盒模型,大小=content+margin。box-sizing: border-box

    # 布局

    • 弹性布局
    • 圣杯布局,浮动和负 margin
    • 双飞翼布局
    • 左右固定,中间自适应

    # 弹性布局优缺点

    # 响应式布局优缺点

    # 伪类和伪元素

    • ::before,伪元素
    • :before,伪类

    # 骨架屏的实现思路

    # 过渡和动画效果

    • css3 动画
      • animation,定义动画帧的效果(@keyframes,设置帧)
      • transition,定义元素变化过程中的行为
      • transform,定义元素变化结果
      • 优点:浏览器对 css3 会做优化,性能更好
      • 缺点:兼容性不好,动画控制不够灵活
    • js 动画
      • 优点:动画控制好,兼容性好

    # 系统分辨率和固定分辨率优缺点

    # display:none 与 visibility:hidden

    # canvas 动画

    • threejs
    • 白鹭引擎
    • 虚幻 4

    # WebGL\SVG\Canvas

    # canvas

    • Canvas 通过 JavaScript 来绘制 2D 图形,Canvas 只是一个 HTML 元素,其中的图形不会单独创建 DOM 元素。因此我们不能通过 JavaScript 操控 Canvas 内单独的图形,不能对其中的具体图形进行监控
    • 在 Canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象
    • 标量图,放大缩小会失真

    # svg

    • svg 创建的每一个元素都是一个独立的 DOM 元素,既然是独立的 DOM 元素,那么我们就可以通过 css 和 JavaScript 来操控 dom。可以对每一个 DOM 元素进行监听。
    • 并且因为每一个元素都是一个 DOM 元素,所以修改 svg 中的 DOM 元素,系统会自动进行 DOM 重绘
    • 矢量图,放大缩小不会失真

    # margin 塌陷

    • 同级元素设置 margin 上下边距会出现合并
    • 父子元素,子元素设置上边距,会传递到父元素
    • 解决:
      • 父盒子设置透明 border
      • 父盒子添加 overflow:hidden
      • 父盒子设定 padding 值
      • 伪元素给子元素的前面添加一个空元素

    # 行内元素 float 后的效果

    • 行内元素 float 后变得像是 inline-block,同时拥有行内和块级的特性,最明显的不同是默认 width 不是 100%,可以设置 padding、width、height

    # sass/less/stylus

    • 具有变量,缓和,嵌套,继承,颜色混合等基本特性
    • less 需要{},sass/stylus 可以缩进表示嵌套关系
    • scss 无全局变量的概念,less/stylus 有作用域的概念
    • sass 基于 ruby,less/styleus 基于 nodejs

    # css 实现硬件加速

    • 硬件加速是指通过创建独立的复合图层,让 GPU 来渲染这个图层,从而提高性能
    • 一般触发硬件加速的 css 属性有:transform、opacity、filter,为了避免 2d 动画在开始和结束的时候重绘操作,一般使用 transform: translateZ(0)
    最近更新
    01
    烧虾球
    05-13
    02
    二次开发
    12-20
    03
    文字展开收起
    10-17
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式