gpt4 book ai didi

css - SCSS 扩展嵌套选择器并覆盖嵌套规则集

转载 作者:技术小花猫 更新时间:2023-10-29 10:16:11 26 4
gpt4 key购买 nike

好的,所以我有一个带有嵌套选择器的占位符:

%block {
.title {
font-size:12px;
}
}

我想扩展它并添加到 .title 类:

.superblock {
@extend %block;
.title {
font-weight:bold;
}
}

我想要的答案是:

.superblock .title {
font-size: 12px;
font-weight: bold; }

然而,我得到的答案是这样的:

.superblock .title {
font-size: 12px; }

.superblock .title {
font-weight: bold; }

我是做错了什么还是这就是它的工作原理?澄清一下,我想合并它。如果我直接在 .superblock 中添加一些东西并像另一个 .superblock2 一样添加,它也扩展了 %block 它们合并没有任何问题。

最佳答案

Sass 没有“合并”重复选择器的功能。在编译 CSS 后,您需要找到另一个实用程序来执行此操作。

@extend 指令不仅仅是一种使用类代替混入的方式(类似于 LESS 风格的混入调用)。当您扩展普通类而不是扩展类时,为什么 @extend 的工作方式变得很清楚:

.block {
font-size:12px;
}

.foo {
@extend .block;
font-weight: bold;
}

输出:

.block, .foo {
font-size: 12px;
}

.foo {
font-weight: bold;
}

使用扩展类只会抑制原始类名的发出。

既然您已经了解了为什么 @extend 会这样工作,您还想要 @extend 提供的功能吗? 如果答案是否定的,那么你需要使用mixin:

@mixin block {
// styles
.title {
font-size: 12px;
@content;
}
}

.superblock {
@include block {
font-weight: bold;
}
}

输出:

.superblock .title {
font-size: 12px;
font-weight: bold;
}

关于css - SCSS 扩展嵌套选择器并覆盖嵌套规则集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com