【问题标题】:Getting Compass to add vendor prefixes to animation selectors让 Compass 将供应商前缀添加到动画选择器
【发布时间】:2013-07-11 04:23:46
【问题描述】:

谁能告诉我如何让 Compass 在编译时将供应商前缀添加到 CSS3 动画选择器?我的配置文件是这样的。

http_path = "/"
css_dir = "/"
sass_dir = "/"
images_dir = "img"
javascripts_dir = "js"

output_style = :expanded
relative_assets = true
line_comments = false

我尝试在其中添加Compass::BrowserSupport.add_support("animation", "webkit", "moz", "ms"),但它不起作用。


编辑

针对 cimmanon 的评论,我想避免像这样重复每个选择器:

.big-wheel {
    left: 77px;
    bottom: 11px;
    -webkit-transform: rotate(0deg);
    -webkit-animation-name: wheels;
    -webkit-animation-duration: 0.25s;
    -webkit-animation-iteration-count: infinite;
    -moz-transform: rotate(0deg);
    -moz-animation-name: wheels;
    -moz-animation-duration: 0.25s;
    -moz-animation-iteration-count: infinite;
    -ms-transform: rotate(0deg);
    -ms-animation-name: wheels;
    -ms-animation-duration: 0.25s;
    -ms-animation-iteration-count: infinite;
    transform: rotate(0deg);
    animation-name: wheels;
    animation-duration: 0.25s;
    animation-iteration-count: infinite;
}

【问题讨论】:

  • 你具体想做什么? Compass 不会在任何感觉的地方神奇地注入前缀。前缀主要通过mixins 完成。
  • 哦,好的.. 基本上我想避免必须执行上述操作(在编辑中添加)。

标签: css sass css-animations compass-sass


【解决方案1】:

你可以试试Bourbon 这样的库。然后在您的 SCSS 文件中,您只需编写一个 include 语句,Bourbon 会在导出时为您生成所有前缀。

@include transform(translateY(50px));

【讨论】:

  • 这根本不是问题所要求的。变换不同于动画; Compass 也包含了自己的转换 mixin。
【解决方案2】:

Compass 确实有一个用于 transform 的内置 mixin

我没有看到网站上记录的其他项目的 mixin。如果您需要使用 experimental mixin,Compass 可以让您轻松编写自己的代码。

.foo {
    @include experimental('animation-name', wheels, webkit, moz, o, ms, not khtml);
    @include experimental('animation-duration', 0.25s, webkit, moz, o, ms, not khtml);
    // alternate way of setting prefixes
    $animation-support: webkit, moz, o, ms, not khtml;
    @include experimental('animation-iteration-count', infinite, $animation-support...);
}

编译为:

.foo {
  -webkit-animation-name: wheels;
  -moz-animation-name: wheels;
  -ms-animation-name: wheels;
  -o-animation-name: wheels;
  animation-name: wheels;
  -webkit-animation-duration: 0.25s;
  -moz-animation-duration: 0.25s;
  -ms-animation-duration: 0.25s;
  -o-animation-duration: 0.25s;
  animation-duration: 0.25s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  -o-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

【讨论】:

  • 谢谢 cimmanon。 Compass 的支持似乎有一个奇怪的漏洞。我还在 David Walsh 的网站上遇到了 vendorize mixin,它做了类似的事情。 css-tricks.com/redesigning-with-sass
  • 网站上记录的是 Compass 稳定版本中的内容。 Sass 存储库中有 新的东西可以使用边缘版本(通过gem install compass --pre 安装):github.com/chriseppstein/compass/blob/transforms/frameworks/…
  • 动画已经添加到主分支上 - 0.13 刚刚花了很长时间才完全发布。如果您不习惯使用 alpha(我已经使用了一段时间),您可以暂时使用 compass animation plugin
猜你喜欢
  • 2021-01-05
  • 2013-07-03
  • 2022-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
  • 1970-01-01
  • 2012-09-29
相关资源
最近更新 更多