当前位置: 首页 > 知识库问答 >
问题:

为什么SASS在使用Extend时要修改同名的链接选择器?

邓威
2023-03-14
<div class="a">hello</div>

%color {
    color: blue;
}
.a {
  color: red;
}
.a.a {
  @extend %color;
}
.a.a {
   color: blue;
}
.a {
   color: red;
}
.a {
  color: blue;
}

.a {
  color: red;
}

我觉得这很违反直觉!

为什么SASS要将我的.a.a选择器重构为.a

以防万一您不相信我,这里有一个codepen演示(单击查看编译的css查看css输出)

选择器的这种“重构”只发生在扩展中的声明中。

所以在下面的SASS中:

%color {
    color: blue;
}
.a.a {
  @extend %color;
  position: relative;
}

输出为:

.a {
  color: blue;
}

.a.a {
  position: relative;
}

注意:允许重复出现相同的简单选择器,这确实增加了特异性。

共有1个答案

胡新
2023-03-14

从表面上看,结果取决于解析引擎。如果使用Dartsass v1.6.2(sassmeister.com的默认值),它会输出预期的结果:

.a.a {
  color: blue;
}

.a {
  color: red;
}

查看sassmeister.com(您也可以在那里切换解析引擎)。

libsass v3.5.2创建您抱怨的结果:

.a {
  color: blue;
}

.a {
  color: red;
}
 类似资料:
  • 我不信任 Sass。我从来都是手写样式表的!我不需要额外的工具来帮助我简化工作。我不想要把复杂的事物添加到我的工作流程中,不要来烦我。 无论是以上哪种想法,现实是Sass(和其他的CSS预处理器)可以成为一个强有力的助手,一个任何样式书写者都可以轻松把它插入到每日的工作中去的工具。在使用了Sass一段时间后回过头来看,我很庆幸自己这么做了。 我想要分享我是怎么来使用Sass来提高效率的,比我前10

  • 问题内容: 我正在Linux x86_64上使用ELF可执行文件和gnu工具链进行实验: 我已经链接并手动剥离了“ Hello World”测试。 转换为267字节的ELF64可执行文件… 它具有一个程序头(LOAD),并且没有节: 这似乎会在地址0x400000处加载整个文件(文件偏移量0到0x10b-elf报头)。 入口点是: 对应于文件中的0xd4偏移量,我们可以看到该地址是机器代码()的开

  • 本文向大家介绍怎么使用css选择空链接?相关面试题,主要包含被问及怎么使用css选择空链接?时的应答技巧和注意事项,需要的朋友参考一下

  • 作为 RIA 工程师,在日常工作中调试各种页面内 BUG 已经是家常便饭,随着 AJAX 技术的盛行,现在出现了众多值得称道调试的工具: 分析 DOM 结构、CSS 及 Javascript 调试:FireBug(Firefox),IE WebDeveloper(IE)、Microsoft Script Editor 等 网络抓包工具:HttpWacth(强力推荐,V6.0+ 已经同时支持 IE

  • 本文向大家介绍React为什么不要直接修改state?如果想修改怎么做?相关面试题,主要包含被问及React为什么不要直接修改state?如果想修改怎么做?时的应答技巧和注意事项,需要的朋友参考一下 不能直接修改state,组件修改state,并不会重新触发render. state的更新是异步的,调用setState时,组件state并不会立即改变,只是把要修改的状态放入事件队列当中. this

  • The common properties case Sometimes you find yourself writing the same set of properties across different CSS rules. For example, let’s say your design makes use of small spaced uppercase letters thr