【问题标题】:How to use sudo classes with SASS and Angular如何在 SASS 和 Angular 中使用 sudo 类
【发布时间】:2021-03-14 17:17:03
【问题描述】:

所以我有这个 .scss 文件可以正确获取基本样式,但无法获取 sudo 类的样式:hover。

这里是homepage.scss

.link {
  text-decoration: underline;
  color : rgb(39,82,180);
  cursor: pointer;
  
  & :hover {
      color :"#002447";
  }
}

这里是homepage.component.html中的相关代码

<li><button class="link" role="link" (click)="dostuff()">Remote Support</button></li>

颜色正确显示,光标和文本按预期显示下划线。 但是,悬停期间颜色不会改变。

如何在悬停时更改文本颜色?强烈希望使用 sass 解决方案而不是 js/angular 解决方案。

我也尝试过更传统的 CSS 方法,但也没有用。

.link  {
  text-decoration: underline;
  color : rgb(39,82,180);
  cursor: pointer;
}

.link :hover {
  color :"#002447";
}

我们可以看到悬停 sudo 类不存在。

但我们可以看到其他样式在 chrome 开发者控制台中正确显示

我也尝试删除 :hover 和 & 之间的空格,我也尝试在 CSS 版本中删除相同的空格。

在我的 package-lock.json 中,我有这些特定版本的 SASS。

"sass": "1.23.3",

"sass-loader": "8.0.0",

我也在使用foundaton.css 和font-awesome,以防有任何已知的冲突。

【问题讨论】:

  • 你试过&amp;:hover,没有空格吗?
  • .link { 文字装饰:下划线;颜色:RGB(39,82,180);光标:指针; &:hover { 颜色 :"#002447"; } }
  • @Roy,是的,我确实尝试过。

标签: angular sass


【解决方案1】:

&amp; 和 :hover 之间不需要空格。留下那里编译成如下所示的css:

.link :hover {
//...
}

这显然是不正确的。相反,我们希望编译后的 css 看起来像这样:

.link:hover {
  //...
}

改为:

.link {
  text-decoration: underline;
  color : rgb(39,82,180);
  cursor: pointer;
  
  &:hover {
      color : #002447;
  }
}

编辑:作为一般提示和对我有帮助的东西,如果我对 SCSS 中的某些内容如何编译为 CSS 感到好奇,我会去 try out the SCSS in Codepen 并检查它编译成什么。

编辑 2:删除了十六进制代码周围的引号。见this codepen

【讨论】:

  • 很抱歉,但这并不能解决问题。该样式不会在视觉上或在 chrome 开发者控制台中出现。我可以在样式部分中搜索“hov”或“.link”,但不会出现悬停部分。
  • @AlexanderRyanBaggett 你确定你做对了吗?因为在您的问题中,您表明您没有多次正确声明伪选择器。 .link 和 :hover 之间有空格是不正确的。此外,您的十六进制不需要用引号引起来。从#002447 周围删除它们
  • 我以为我复制并粘贴了它,但显然我没有。我刚刚删除了空间。你的版本似乎工作。我会将其标记为已接受的答案。看起来我不小心在颜色周围加上了引号,这就是为什么删除空格似乎不起作用的原因。
猜你喜欢
  • 2017-11-26
  • 1970-01-01
  • 2019-08-14
  • 2019-01-29
  • 2017-03-17
  • 1970-01-01
  • 2018-01-21
  • 2016-10-30
  • 2018-06-29
相关资源
最近更新 更多