【问题标题】:SASS Mixin: only apply hover style if class is on a link?SASS Mixin:如果类在链接上,则仅应用悬停样式?
【发布时间】:2017-08-17 08:46:44
【问题描述】:

我正在尝试使用 mixin 设置一堆背景颜色。如果将类分配给链接元素,我还想将悬停样式应用于这些背景颜色:

@mixin bg-color($color) {
   background-color: $color;
   &[ifthisisalink] {
     &:hover {
        background-color: darken($color, 10%);
     }
   }
}

   .bg-blue {
      @include bg-color(blue);
   }

所以如果我们在一个普通的 div 上有.bg-blue,就没有悬停颜色。但是如果.bg-blue在一个链接上,会有一个悬停颜色:

<div class="bg-blue">Hover on me and nothing happens.</div>
<a href="#" class="bg-blue">Hover on me and I go darker.</a>

这在 SASS 中可行吗?

【问题讨论】:

    标签: sass


    【解决方案1】:

    你需要@at-root:

    @mixin bg-color($color) {
    
    
     background-color: $color;
        @at-root {
           a#{&} {
              &:hover {
                 background-color: darken($color, 10%);
              }
           }
        }
     }
    
     .bg-blue {
        @include bg-color(blue);
     }
    

    【讨论】:

    • 太棒了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 2011-07-15
    • 1970-01-01
    • 2016-02-07
    • 2018-01-06
    • 2016-11-23
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多