element-ui,这个地方scss写的是什么意思?

发布于 2022-09-12 01:13:43 字数 1207 浏览 18 评论 0

mixins.scss中定义的混合指令
`@mixin m($modifier) {

$selector: &;
$currentSelector: "";
@each $unit in $modifier {
  $currentSelector: #{$currentSelector + & + $modifier-separator + $unit + ","};
}

@at-root {
  #{$currentSelector} {
    @content;
  }
}

}`

form.scss中使用

@include b(form) {
  @include m(label-left) {
    & .ec-form-item__label {
      text-align: left;
    }
  }
  @include m(label-top) {
    & .ec-form-item__label {
      float: none;
      display: inline-block;
      text-align: left;
      padding: 0 0 10px 0;
    }
  }
  @include m(inline) {
    & .ec-form-item {
      display: inline-block;
      margin-right: 10px;
      vertical-align: top;
    }
    & .ec-form-item__label {
      float: none;
      display: inline-block;
    }
    & .ec-form-item__content {
      display: inline-block;
      vertical-align: top;
    }
    &.ec-form--labec-top .ec-form-item__content {
      display: block;
    }
  }
}

@each $unit in $modifier$modifier是传入的'label-left',而@each使用中$modifier应该传入的是一个<List>,不能理解,请大神解释下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好多鱼好多余 2022-09-19 01:13:43

是滴,$modifier 应该传入 list,但是如果这个 list 只有一个值呢?
m(label-left) 说明这个 list 只有一个值,如果两个值就是 m(label-left, modifier)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文