css - 为什么我的 SASS 渐变混入的悬停状态不起作用?

标签 css sass

我在我的 Rails 应用程序中的一些 anchors 上使用了以下 gradient 混合:

@mixin gradient($color) { 
  $from: lighten($color, 5%);
  $to: darken($color, 5%);
  background-color: $color;
  background-image: -moz-linear-gradient($from, $to);
  background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($from), to($to));
  background-image: -webkit-linear-gradient($from, $to);
  background-image: -o-linear-gradient($from, $to);
  &:hover {
    $hover_color: darken($color, 5%);
    $from: lighten($hover_color, 5%);
    $to: darken($hover_color, 5%);
    background-color: $hover_color;
    background-image: -moz-linear-gradient($from, $to);
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from($from), to($to));
    background-image: -webkit-linear-gradient($from, $to);
    background-image: -o-linear-gradient($from, $to);
  }
}

虽然 :hover 不起作用。当我将鼠标悬停在 anchor 上时,没有任何变化。我希望在那里看到颜色的变化。

谁能告诉我我在这里缺少什么?

感谢您的帮助。

最佳答案

SASS 代码很好。

background-image 位于 background-color 的“顶部”,因此您看不到变化。

进行此调整,这将声明所有背景属性:

&:hover {
  background: darken($color, 20%) !important;
}

您或许可以删除 !important

如果你想要不同的渐变,你必须在 :hover 样式中再次声明 each 属性(具有不同的值)。

关于css - 为什么我的 SASS 渐变混入的悬停状态不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19366801/

相关文章:

css - 在 CSS 中将两个图像淡入淡出

ruby-on-rails - 如何在 Rails 3.1 中管理 CSS 样式表资源?

html - 如何定位父级内的所有标签

css calc - 向下舍入两位小数

css - 在 PhpStorm 中从 HTML 导航到 SASS 类而不是 CSS?

javascript - CSS 悬停延迟

html - .css 或其他文件中的 <css> 标签

html - 将鼠标悬停在其中的特定元素上时如何不触发表行的悬停效果

jquery - 两个滚动条的问题?

html - 根据页面 rails 更改正文背景