首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sass @ extending /default而不扩展伪类?

Sass @ extending /default而不扩展伪类?
EN

Stack Overflow用户
提问于 2012-08-15 02:49:55
回答 1查看 3.1K关注 0票数 2

我知道我可以@扩展.foo:hover,但是是否有一种方法可以@扩展.foobar基/默认属性,而不需要扩展诸如:.foobar、:active等伪类的定义?

例如,,如何更改以下内容,使.foobar只扩展..foo的默认状态?

代码语言:javascript
复制
.foo {
    & {
         color:blue;
    }
    &:hover {
         background-color: black;
    }
}

.foobar {
     @extend .foo;
     &:hover {
          //As is, I have to override. Any better way?
          background-color: transparent;
     }
}

(如果Sass没有办法做到这一点,那么是否有更好的方法来实现同样的效果?)

EN

回答 1

Stack Overflow用户

发布于 2012-09-06 19:07:29

你必须重写你的选择器,这样你才能完全扩展你想要的部分:

代码语言:javascript
复制
%foo {
    color:blue;
}

.foo {
    @extend %foo;

    &:hover {
         background-color: black;
    }
}

.foobar {
    @extend %foo;

    &:hover {
         background-color: transparent;
    }
}

但是,根据如何扩展/重用.foo类,新的@content指令可能是更好的方法。

代码语言:javascript
复制
@mixin foo {
    color: blue;

    &:hover {
        @content;
    }
}

.foo {
    @include foo {
        background-color: black;
    }
}

.foobar {
    @include foo {
        background-color: transparent;
    }
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11963501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档