浏览器支持原生嵌套了!

6912次浏览

前言

之前在 LESS、SASS 等预处理器中嵌套写法,现在原生css竟然支持了哈,从chrome112开始支持!下面尝鲜看看语法!

CSS 原生嵌套语法

div {
    & > p {
        color: red;
    }

    &:hover {
        color: yellow;
    }
}

其语法规则大致如下:

parentRule {
  /* parent rule style properties */
  & childRule {
    /* child rule style properties */
  }
}

注意点

<div class="g-container">
    <h3 class="g-h3">CSS 
        <span class="g-span">Haorooms</span>
    </h3>
</div>

上面的html这么写没有问题

div {
    border: 1px solid #000;

    .g-h3 {
        color: red;

        .g-span {
            color: blue;
        }
    }
}

假如如下:

div {
    border: 1px solid #000;

    h3 {
        color: red;

        span {
            color: blue;
        }
    }
}

这么写不生效。需要如下写法

div {
    border: 1px solid #000;

    & h3 {
        color: red;

        & span {
            color: blue;
        }
    }
}

在嵌套中使用伪元素和伪类

div {
  /* ... */
  &:hover {
    color: red;
  }

  &:is(.content, footer) {
    padding: 16px;
  }

  &::before {
    content: "";
    /* ... */
  }
}

这个写法和css预处理器一样的。

小结

css支持原生嵌套功能很强大,基本可以替代sass和less,但是注意的是要用class类,纯标签的化,需要 &

相关文章:

  1. 投入到厚44
    1
    王者荣耀无限点券http://av325.com/ 晨曦的阳光淌进窗户,给你送出我的祝福,打开手机查看,温馨,一点点爬上你的笑脸,你是快乐的,我就是幸福的!
  2. 投入到厚44
    2
    王者荣耀点券修改器http://www.wzryzx.cn/ 王者荣耀免费刷点卷http://www.wzdqzs.cn/ 天亮了吧,闹铃响了吧,极不情愿地起床了吧,我的问候及时赶到了吧,高兴了吧,那就笑笑吧,祝你好心情!