首页 > 其他分享 >原生 CSS 中类似 Sass 的嵌套

原生 CSS 中类似 Sass 的嵌套

时间:2024-01-07 12:32:00浏览次数:49  
标签:Sass ul color 嵌套 CSS 选择器 red

如果你和我一样觉得 Sass 的 CSS 嵌套功能非常有用,那么你一定会很高兴地知道,我们的好日子就要来了。

因此,如果你不知道,Sass 的 CSS 嵌套功能允许您将 CSS 选择器嵌套在其他选择器中。例如,你可以这样写:

.parent {
    .child {
        color: red;
    }
}

这将被编译成以下 CSS。

.parent .child {
    color: red;
}

当你想为某一特定元素编写 CSS 时,如果该元素是另一元素的子元素,这就非常有用了。你不必反复编写父选择器。只需将子选择器嵌套在父选择器中就可以了。

原生 CSS 嵌套

现在,原生 CSS 也出现了类似的功能。 CSS 嵌套模块现已在 Safari 技术预览版 162 和 Chrome Dev 中附带(通过在浏览器中启用“Experimental Web Platform features(实验性 Web 平台功能)”标志)。

启用后,你可以像这样在原生 CSS 中编写上述类似 Sass 的代码。

.parent {
    .child {
        color: red;
    }

    #childWithId {
        color: red;
    }
}

很整洁,对吧?

但也有一些注意事项。

局限性

要使用 CSS 嵌套,你必须嵌套仅以以下符号开头的选择器:.:[>+~#*。这是因为浏览器解析 CSS 的方式。如果你嵌套的选择器不以上述任何符号(例如 pspandiv` 等)开头,则嵌套将被忽略。

为了解决这个问题,你可以在子选择器前面添加 & ,如下所示。

.parent {
    & span {
        color: red;
    }
}

上面的代码将被编译成下面的CSS。

.parent span {
    color: red;
}

这也适用于如下场景。

ul {
  padding-left: 1em;
}

.component ul {
  padding-left: 0;
}

可以看出,这里的 ul 选择器并没有嵌套在 .component 选择器中。

要使 ul 选择器嵌套在 .component 选择器内,您可以将 & 附加到 .component 选择器,如下所示。

ul {
  padding-left: 1em;

  .component & {
    padding-left: 0;
  } 
}

差不多就是这样了!

由于 CSS Nesting Module 仍处于草案阶段,因此不建议在生产中使用它。但很高兴知道,一旦该功能足够成熟,它就会出现在原生 CSS 中。

标签:Sass,ul,color,嵌套,CSS,选择器,red
From: https://blog.51cto.com/u_11365839/9133860

相关文章

  • css: rainbow Border with gradient and radius
     <!doctypehtml><html><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width,initial-sca......
  • css3 loading特效
    一个样式类,一个容器,无须额外元素:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>LoadingAnimation</title><style>#app{height:100vh;display:flex;alig......
  • 【Webpack】-css,less,图片的打包及压缩优化
    一、打包CSS代码由于Webpack默认只识别js代码,所以打包css代码需要其他一些东西来帮忙加载器css-loader:解析css代码加载器style-loader:把解析后的css代码插入到DOM步骤:1.准备css文件代码引入到src/login/index.js中(压缩转译处理等)2.下载css-loader和style-loader本地软件包3.配置web......
  • 爬虫如何使用代理IP通过HTML和CSS采集数据
    前言爬虫是一种自动化工具,用于从互联网上获取数据。代理IP是一种用于隐藏真实IP地址并改变网络请求的方法。在爬虫中使用代理IP可以帮助我们采集大量数据时绕过反爬虫机制,并提高爬取效率。本文将介绍如何使用代理IP通过HTML和CSS采集数据,并提供相关代码示例。1.了解代理IP代理IP是......
  • 可以直接在 CSS 中添加 alt/aria-label 吗?
    我们目前正在对我们的网站完成一些无障碍检查。它发现的问题之一是我们移动版本上的2个图标需要“可识别的文本”:在此页面上-https://sthelens.ac.uk/kcc-course-enquiry-查看移动版本时,搜索图标和汉堡菜单图标没有替代文本。但是,我似乎找不到它是在哪里控制的。我找到了分配......
  • 如何在Nuxt 3中为<html>和<body>标签添加Tailwind CSS类?
    在Nuxt3中为<html>和<body>标签添加TailwindCSS类,可以参考以下步骤:安装TailwindCSS:在项目根目录下运行以下命令安装TailwindCSS和其依赖:npminstalltailwindcss@latest@tailwindcss/typography@latestpostcss@latestautoprefixer@latest创建TailwindCSS配......
  • 使用 JavaScript 根据输入值调整输入字段 (HTML) 的 (CSS) 中的文本颜色
    可以通过以下代码使用JavaScript根据输入值调整输入字段的文本颜色:HTML:<inputtype="text"id="myInput"oninput="changeTextColor()"placeholder="Enteravalue">CSS:#myInput{color:black;}JavaScript:functionchangeTextColor......
  • CSS选择器
    一、属性选择器[att^=value]前缀:通过属性名和属性值的前缀进行选择在CSS中,我们可以使用属性选择器来选择具有特定属性值的元素。其中,通过设置属性值的前缀(value),我们可以选择具有以某个特定前缀开头的属性值。例如,如果我们想选择所有属性名为att且属性值以value开头的元素,可以......
  • CSS3入门
    一.CSS3的概述 1.定义:层叠样式表;d2.意义:把内容与形式分开;html:内容;CSS:形式3.浏览器:chrome4.css样式规则e选择器(属性1:值,属性2:值;.......)选择器区分大小写,“5.css样式表的导入(1)行内式例:style="font-size:50px;font[amily:隶书;写在标记内;“  ......
  • scss样式穿透>>>或/deep/或::v-deep
    参考:https://www.jianshu.com/p/7f38b0aa6fb7<stylescoped>.menuItem{//常用方式1,2>>>.ant-input{border-radius:50px;}/deep/.ant-input{font-size:14px;}//在scss,less,sass等解析器中::v-deep.ant-input{colo......