Css SASS不读取根类,只读取带有符号AND的根类

Css SASS不读取根类,只读取带有符号AND的根类,css,vue.js,sass,Css,Vue.js,Sass,我有一个带有符号的sass/css类,它与VueJS一起使用。我想知道的是,在符号上指定的CSS属性正在工作,但是浏览器没有检测到根元素本身 <style lang="scss" scoped> .curved-input { border-radius: 5px; height: 50px; margin-right: 1rem; &__lg { width: 300px; } &__sm { width: 150px;

我有一个带有符号的sass/css类,它与VueJS一起使用。我想知道的是,在符号上指定的CSS属性正在工作,但是浏览器没有检测到根元素本身

<style lang="scss" scoped>
.curved-input {
  border-radius: 5px;
  height: 50px;
  margin-right: 1rem;

  &__lg {
    width: 300px;
  }

  &__sm {
    width: 150px;
  }
}
</style>
文本框宽度已更改,但当您在浏览器工具上查看其他属性时,浏览器不会读取这些属性。我是不是遗漏了什么


我的目标不是将其编码为
class=“Curve-input Curve-input\uuu lg
,而是在继承父属性(Curve-input)时仅使用
Curve-input\uu lg
Curve-input\uu sm
.

这是因为您还必须声明
曲线输入
类。因此,您的class属性将类似于
class=“Curve input Curve-input\uu lg”

如果您将CSS完整地写出来,您将得到如下结果:

.curved-input {
   border-radius: 5px;
   height: 50px;
   margin-right: 1rem;
}

.curved-input__lg {
   width: 300px;
}

.curved-input__sm {
   width: 150px;
}

记住这一点,您将看到还必须添加类
曲线输入。

这是因为您还必须声明
曲线输入
类。因此,您的类属性将类似于
class=“curved input curved-input\uu lg”

如果您将CSS完整地写出来,您将得到如下结果:

.curved-input {
   border-radius: 5px;
   height: 50px;
   margin-right: 1rem;
}

.curved-input__lg {
   width: 300px;
}

.curved-input__sm {
   width: 150px;
}

记住这一点,您将看到您还必须添加类
曲线输入。

您可以使用
@extend
来避免向标记中添加额外的类或(某些)重复的代码,如果这是您的目标的话

.curved-input {
  border-radius: 5px;
  height: 50px;
  margin-right: 1rem;
}

.curved-input {
  &__lg {
    @extend .curved-input;
    width: 300px;
  }

  &__sm {
    @extend .curved-input;
    width: 150px;
  }
}
这将生成以下CSS

.curved-input, 
.curved-input__sm, 
.curved-input__lg {
  border-radius: 5px;
  height: 50px;
  margin-right: 1rem;
}

.curved-input__lg {
  width: 300px;
}
.curved-input__sm {
  width: 150px;
}

您可以使用
@extend
来避免向标记中添加额外的类或(某些)重复的代码,如果这是您的目标的话

.curved-input {
  border-radius: 5px;
  height: 50px;
  margin-right: 1rem;
}

.curved-input {
  &__lg {
    @extend .curved-input;
    width: 300px;
  }

  &__sm {
    @extend .curved-input;
    width: 150px;
  }
}
这将生成以下CSS

.curved-input, 
.curved-input__sm, 
.curved-input__lg {
  border-radius: 5px;
  height: 50px;
  margin-right: 1rem;
}

.curved-input__lg {
  width: 300px;
}
.curved-input__sm {
  width: 150px;
}

如果你想这样写,试着把第一行改成:

[class*="curved-input"]

如果你想这样写,试着把第一行改成:

[class*="curved-input"]

是的,当我将其设置为
curve-input curve-input\uu lg
时,它就是这样工作的,但是有没有办法修改它,我将我的类设置为
curve-input\uu lg
curve-input\uu sm
但它将继承
curve-input
类?您可以通过向
\uu lg和
\uuu sm
类。但是你会像在这里一样超越BEM的使用。所以我建议使用
曲线输入曲线输入lg
作为你的类属性,当我将其设置为
曲线输入曲线输入lg
时,它的工作原理就是这样,但是有没有办法修改这个,我只将我的类设置为
Curve-input\uuu lg
Curve-input\uuuu sm
但它将继承
Curve-input
类?您可以通过将边框半径、高度和边距添加到
\uu lg
\uu sm
类中来实现。但这样您就可以像在这里一样超越BEM的使用。因此我建议使用
Curve-input Curve-input Curve-input__lg
作为您的类属性,您可以将类拆分为
曲线输入
\uu lg
作为两个不同的类。您也可以将类拆分为
曲线输入
\uu lg
作为两个不同的类