参考资料

  1. 如何避免 CSS 过渡动画卡顿?
  2. css让div居中的几种方法
  3. CSS尺寸属性详细说明以及案例
  4. 详细说明:justify-content: flex-start/end
  5. div居中样式
  6. CSS阴影颜色
  7. Vanta.js 如何与 CSS 过渡结合?
  8. CSS响应式详细说明以及案例
  1. 减少嵌套层级

    <!-- 不推荐 -->
    <div style="display: flex;">
      <div style="display: flex;">
        <div style="display: flex;"></div>
      </div>
    </div>
    
    <!-- 推荐 -->
    <div style="display: flex;">
      <div></div>
      <div></div>
    </div>
    • 示例: 避免多层嵌套的Flex容器

  2. 使用flex代替width/height

    .item {
      flex: 1; /* 替代 width: 25% */
    }
    • 示例: 优先使用flex属性控制尺寸

  3. 避免频繁重排

    // 不推荐
    element.style.flexGrow = 1;
    element.style.flexShrink = 0;
    
    // 推荐
    element.style.cssText = 'flex-grow: 1; flex-shrink: 0;';
    • 示例: 批量修改样式

  4. 使用flex-basis替代固定宽度

    .item {
      flex: 0 0 200px; /* 替代 width: 200px */
    }
    • 示例:

  5. 限制flex-wrap使用

    .container {
      display: flex;
      flex-wrap: wrap; /* 只在必要时添加 */
    }
    • 示例: 仅在需要换行时使用

  6. 优化align-itemsjustify-content

    .container {
      display: flex;
      align-items: center; /* 统一垂直居中 */
      justify-content: space-between; /* 合理分配空间 */
    }
    • 示例: 使用一致的对齐方式

  7. 避免动态修改Flex属性

    // 不推荐
    function resize() {
      container.style.flexDirection = window.innerWidth > 768 ? 'row' : 'column';
    }
    
    // 推荐使用CSS媒体查询
    • 示例: 减少运行时样式变更

  8. 使用will-change优化

    .animated-item {
      will-change: transform, flex;
    }
    • 示例: 对动画元素添加提示

  9. 简化Flex项内容

    <!-- 不推荐 -->
    <div class="flex-item">
      <div>
        <p><span>多层嵌套内容</span></p>
      </div>
    </div>
    
    <!-- 推荐 -->
    <div class="flex-item">
      简化后的内容
    </div>
    • 示例: 减少Flex项内的复杂DOM结构

  10. 合理使用order属性

    /* 不推荐 */
    .item:nth-child(1) { order: 3; }
    .item:nth-child(2) { order: 1; }
    .item:nth-child(3) { order: 2; }
    
    /* 推荐保持DOM顺序与显示顺序一致 */
    • 示例: 避免过度使用order重排