首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sass的动态页边距/填充

使用sass的动态页边距/填充
EN

Stack Overflow用户
提问于 2017-06-01 15:51:52
回答 2查看 2K关注 0票数 0

有没有可能使用sass来简化并使其更容易维护?

代码语言:javascript
复制
.padding-8 { padding: 8px !important; }
.padding-10 { padding: 10px !important; }

.padding-top-0 { padding-top: 0 !important; }
.padding-top-3 { padding-top: 3px !important; }

.padding-bottom-0 { padding-bottom: 0 !important; }
.padding-bottom-3 { padding-bottom: 3px !important; }
.padding-bottom-5 { padding-bottom: 5px !important; }

.margin-top-0 { margin-top: 0 !important; }
.margin-top-5 { margin-top: 5px !important; }

.margin-bottom-0 { margin-bottom: 0 !important; }
.margin-bottom-5 { margin-bottom: 5px !important; }

等等。

是否也可以编写类似.padding-$dir-$value { padding-$dir: $value px !important; }的代码,这样您就可以使用带有f.ex -left-13的类了?

EN

回答 2

Stack Overflow用户

发布于 2017-06-01 17:01:28

  1. 使用要混合的属性创建两个映射。
  2. 为每个组合创建一个占位符类。我认为如果您不想创建一个可能不会使用的类的完整列表,那么它是合适的。这是模块友好的用法。
  3. 在你的元素中扩展类。

$paddingDirection:('right','left','top','bottom');$paddingLength:(15,30,45,50);@ $dir in $paddingDirection{ @each $len in $paddingLength{ %padding-#{$dir}-#{$len}{ padding-#{$dir}:#{$len}px;} ..any$len{@Exten%Padding%PaddingRight-30;} /*output*/ .any-$dir{padding: 30px;}

原始答案here

票数 1
EN

Stack Overflow用户

发布于 2020-09-28 02:51:08

你可以使用这个:(增强了上面的解决方案)

代码语言:javascript
复制
$paddingDirection:('right','left','top','bottom');
$paddingLength:(15,30,45,50);
// if you only wants to use "padding" without postfix
@each $len in $paddingLength {
  .padding-#{$len} { padding: #{$len}px;}
}

// if you want to use padding-left, padding-right etc.
@each $dir in $paddingDirection {
  @each $len in $paddingLength {
    .padding-#{$dir}-#{$len} { padding-#{$dir}: #{$len}px;}
  }
}

usage:
<div class="padding-15"></div>
<div class="padding-left-15 padding-top-15"></div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44301652

复制
相关文章

相似问题

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