首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SASS -在不影响宽度的情况下将边距设置为0

SASS -在不影响宽度的情况下将边距设置为0
EN

Stack Overflow用户
提问于 2014-03-08 18:35:42
回答 1查看 435关注 0票数 1

我对SASS完全陌生。

这是我的SASS代码

代码语言:javascript
复制
@mixin set-width-and-margin($label-width: 150px, $value-margin-left: 20px){
    .label-class {
        width: $label-width;
    }
    .input-class {
        margin-left: $label-width + $value-margin-left;
    }
}

.form-1 {
    @include set-width-and-margin();
}

.form-2 {
    @include set-width-and-margin(100px);
}

它输出以下CSS代码。

代码语言:javascript
复制
.form-1 .label-class {
    width: 150px;
}
.form-1 .input-class {
    margin-left: 170px;
}

.form-2 .label-class {
    width: 100px;
}
.form-2 .input-class {
    margin-left: 120px;
}

我希望添加另一个类.form-3,并将margin-left值设置为0 ,而不影响width

这是想要的 CSS输出。

代码语言:javascript
复制
.form-3 .label-class {
    width: 150px;
}
.form-3 .input-class {
    margin-left: 0;
}

我唯一知道的解决办法就是这个。

代码语言:javascript
复制
.form-3 {
    .label-class {
        width: 150px;
    }
    .input-class {
        margin-left: 0;
    }
}

虽然它确实有效,但我想知道是否有更好的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-08 18:47:36

您只需使用两个参数调用mixin即可。您可以将$value-margin-left覆盖到-150px,以便得到的边距为0px

代码语言:javascript
复制
.form-3 {
    @include set-width-and-margin(150px, -150px);
}

如果这还不够好的话,那么另一种方法是在调用mixin之后覆盖剩下的边距(或者,重新构建您的函数以更干净地容纳这一点)。

代码语言:javascript
复制
.form-3 {
    @include set-width-and-margin(150px);
    .input-class {
        margin-left: 0px;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22273412

复制
相关文章

相似问题

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