css重点知识汇总(二)

发布于:2025-03-28 ⋅ 阅读:(23) ⋅ 点赞:(0)

css居中方式汇众:

水平居中

  • margin 0 auto:最常见的水平居中方式,将左右的margin设置为auto,会自动将内容排在父元素中间
  • 外层盒子设置display:flex,justify-content: center

垂直居中:

  • 外层盒子设置display:flex,alin-item:center
  • vertial-alin: middle,需要兄弟元素(或者给父元素设置伪元素)做参照物,让他垂直兄弟元素的中心
  • 通过绝对定位:子绝父相,先设置left(top):50%,在设置margin-left(top)为自己总长宽的一半(或是只用位移至相同位置)

css层叠规则

  • 由内至外(同一层叠上下文):

    • 背景,边框
    • -z-index
    • 块级盒子
    • 浮动元素
    • 行内盒子
    • z-index:0
    • +z-index
  • 层叠上下文

    • 层叠上下文是由特定的 CSS 属性触发的,它形成一个局部的层叠空间。子元素在该空间中进行层叠,不会影响其他层叠上下文外的元素。

      简单来说,它是一种自包含的空间,元素只能在其中进行前后堆叠。

    • 以下属性会触发一个新的层叠上下文:

      1. 根元素:HTML 的 <html> 元素天然形成一个层叠上下文。
      2. 定位 + z-index
        • 元素的 positionrelativeabsolutefixedz-index 不为 auto 时。
      3. opacity:当 opacity 值小于 1 时(例如 opacity: 0.5)。
      4. transformtransform: translate(), scale(), rotate() 等会创建层叠上下文。
      5. filter:使用 filter 属性时。
      6. will-change:如 will-change: transform
      7. mix-blend-mode:非 normal 的混合模式也会触发层叠上下文。
    • 层叠上下文的特性:

      1. 独立性
        • 一个层叠上下文内部的元素不会影响外部的层叠顺序。
      2. 局部层叠顺序
        • 在层叠上下文内部,z-index 会决定元素的前后顺序。
      3. 嵌套
        • 层叠上下文可以嵌套,内部的层叠顺序优先级不会超越外部上下文。

css常见继承规则

不可继承:

  • 布局样式:display
  • 文本属性:例如text-shadow, vertical-align,white-space
  • 盒子模型属性:height,width,margin,padding
  • 背景属性:background
  • 定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index

可继承:

  • 字体系列:font
  • 文本系列:text,line-height,word-spacing,letter-spacing,text-transform(uppercase、lowercase、capitalize),color
  • 元素可见性:visibility

css简单动画:

  • transition (过度属性),强调过度,它的实现需要触发一个事件(比如鼠标移动上去,焦点,点击等)才执行动画。它类似于 flash 的补间动画,设置一个开始关键帧,一个结束关键帧。
  • animation (动画属性),它的实现不需要触发事件,设定好时间之后可以自己执行,且可以循环一个动画。它也类似于 flash 的补间动画,但是它可以设置多个关键帧(用@keyframe 定义)完成动画。

媒体查询(用以实现移动端优化)

  • 指通过查询访问网页的设备用以显示特定的样式
  • 适合 web 网页应对不同型号的设备而做出对应的响应适配
  • 应用:响应式布局(一个网站能够兼容多个终端,而不是为每一个终端做一个特定的版本。)
    • 通过媒体查询查询检测不同的设备屏幕尺寸做处理

对 Flex 布局的理解及其使用场景

Flex 是 FlexibleBox 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。行内元素也可以使用 Flex 布局。注意,设为 Flex 布局以后,子元素的 float、clear 和 vertical-align 属性将失效。采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis),项目默认沿水平主轴排列。

以下 6 个属性设置在容器上

  • flex-direction 属性决定主轴的方向(即项目的排列方向)。
  • flex-wrap 属性定义,如果一条轴线排不下,如何换行。
  • flex-flow 属性是 flex-direction 属性和 flex-wrap 属性的简写形式,默认值为 row nowrap。
  • justify-content 属性定义了项目在主轴上的对齐方式。
  • align-items 属性定义项目在交叉轴上如何对齐。
  • align-content 属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

以下 6 个属性设置在项目上

  • order 属性定义项目的排列顺序。数值越小,排列越靠前,默认为 0。
  • flex-grow 属性定义项目的放大比例,默认为 0,即如果存在剩余空间,也不放大。
  • flex-shrink 属性定义了项目的缩小比例,默认为 1,即如果空间不足,该项目将缩小。
  • flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为 auto,即项目的本来大小。
  • flex 属性是 flex-grow,flex-shrink 和 flex-basis 的简写,默认值为 0 1 auto。
  • align-self 属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性。默认值为 auto,表示继承父元素的 align-items 属性,如果没有父元素,则等同于 stretch。

简单来说: flex 布局是 CSS3 新增的一种布局方式,可以通过将一个元素的 display 属性值设置为 flex 从而使它成为一个 flex 容器,它的所有子元素都会成为它的项目。一个容器默认有两条轴:一个是水平的主轴,一个是与主轴垂直的交叉轴。可以使用 flex-direction 来指定主轴的方向。可以使用 justify-content 来指定元素在主轴上的排列方式,使用 align-items 来指定元素在交叉轴上的排列方式。还可以使用 flex-wrap 来规定当一行排列不下时的换行方式。对于容器中的项目,可以使用 order 属性来指定项目的排列顺序,还可以使用 flex-grow 来指定当排列空间有剩余的时候,项目的放大比例,还可以使用 flex-shrink 来指定当排列空间不足时,项目的缩小比例。