code2code

导航

CSS相关面试问题

        • BFC—— Box、Formatting Context
        • box:盒子模型
        • Formatting Context:渲染文档的容器,css根据它来进行渲染
        • 根元素
        • float属性不为none
        • position为absolute或fixed
        • display为inline-block, table-cell, table-caption, flex, inline-flex
        • overflow不为visible
        • 防止垂直 margin 重叠
        • 避免浮动元素和其他元素重叠
        • 清除内部浮动
        • 当元素的一部分属性发生改变,如外观、背景、颜色等不会引起布局变化,只需要浏览器根据元素的新属性重新绘制
        • 重排(回流):当render树中的一部分或者全部因为大小边距等问题发生改变而需要DOM树重新计算的过程
      • 重绘不一定需要重排(比如颜色的改变),重排必然导致重绘(比如改变网页位置)
          • 由于重绘和回流均会增加页面的负载,因此需要减少这类情况发生
          • 少用style,多用class将相同属性封装到一个class中。
          • 不要把属性值放在一个循环里当成循环里的变量。
          • 为动画的 HTML 元件使用 fixed 或 absoult 的 position,那么修改他们的 CSS 是不会 reflow 的。
          • 千万不要使用 table 布局。因为可能很小的一个小改动会造成整个 table 的重新布局。(table及其内部元素除外,它可能需要多次计算才能确定好其在渲染树中节点的属性,通常要花3倍于同等元素的时间。这也是为什么我们要避免使用table做布局的一个原因。)
          • 不要在布局信息改变的时候做查询(会导致渲染队列强制刷新)
          • 用translate替代top改变
          • 用opacity替代visibility(在独立图层下优化重绘)
      • 由margin、border、padding、content组成,其中padding与content作为元素的宽度和高度
        • content-box:此时元素的宽度和高度仅由content组成
        • border-box:此时元素的宽度和高度由border、padding、content组成
        • inherit:属性继承上一级元素
      • 上下左右居中。原文:https://www.cnblogs.com/xiaoxueer/p/11849997.html
          • 父元素
            • display: flex;
            • align-items: center;
            • justify-content: center;
          • 子元素

          • 父元素:
            • position: relative;
          • 子元素
            • position: absolute;
            • top:50%;
            • left:50%;
            • transform:translate(-50%, -50%);
          • 父元素
            • text-align: center;
          • 父元素:after
            • content: '';
            • display: inline-block;
            • height: 100%;
            • vertical-align: middle;
          • 子元素
            • display: inline-block;
            • vertical-align: middle;
    •  

posted on 2022-01-06 17:52  yz6zy  阅读(47)  评论(0编辑  收藏  举报