【问题标题】:SASS keyframes not compiling as wantedSASS 关键帧未按需要编译
【发布时间】:2013-07-18 21:30:07
【问题描述】:

我正在为 SCSS 使用以下关键帧 mixin

@mixin keyframes($name) {
    @-webkit-keyframes #{$name} {
        @content;
    }
    @-moz-keyframes #{$name} {
        @content;
    }
    @-ms-keyframes #{$name} {
        @content;
    }
    @keyframes #{$name} {
        @content;
    }
}

它完美地工作,当我必须动画时,它具有animation 属性,但是当我尝试将它用于子元素时,我得到的不是我需要的输出(但语法有效)

例子:

@include keyframes('text') {
    0% {
        span { color: red; }
    }
    100% {
        span { color: green; }
    }
}

将输出(短输出):

@keyframes text {
    0% span { color: red; }
    100% span { color: green; }
}

但我需要的是:

@keyframes text {
     0% {
        span { color: red; }
    }
     100% {
        span { color: green; }
    }
}

如何防止 sass 折断第一个括号?

【问题讨论】:

    标签: sass


    【解决方案1】:

    就我而言,您将关键帧应用于元素。所以你想要的输出:

    @keyframes text {
         0% {
            span { color: red; }
        }
         100% {
            span { color: green; }
        }
    }
    

    在 CSS 中没有多大意义。

    我认为你需要的是这样的:

    @keyframes span#text {
        0% {color: red; }
        100% { color: green; }
    }
    

    这也不是你的混入问题,因为这个 SASS:

    0% {
        span { color: red; }
    }
    100% {
        span { color: green; }
    }
    

    编译为:

    0%  span {
      color: red; }
    
    100%  span {
      color: green; }
    

    根据需要。

    我认为您的关键帧 mixin 的预期用途类似于:

    span#text {
    
        @include keyframes(text) {
          0% {
            color: red;
          }
          100% {
            color: green;
          } 
        }
    
    }
    

    【讨论】:

    • 谢谢 :) 真的不想那样做,但我想我必须这样做 :c
    猜你喜欢
    • 2014-11-27
    • 2018-09-30
    • 2017-10-07
    • 2020-08-15
    • 2017-06-04
    • 1970-01-01
    • 2021-05-21
    • 2020-12-09
    • 2017-05-03
    相关资源
    最近更新 更多