在sass中写的css3经过编译后可以兼容各个浏览器?

@mixin rounded($vert, $horz, $radius: 10px) {
    border-#{$vert}-#{$horz}-radius: $radius;
    -moz-border-radius-#{$vert}#{$horz}: $radius;
    -webkit-border-#{$vert}-#{$horz}-radius: $radius;
  }
像这样的代码就只用写第一行border-#{$vert}-#{$horz}-radius: $radius;
各个浏览器的前缀会经过sass的编译自动生成?

阅读 7.9k
3 个回答

是这样子的,只要自己开始先定义好的mixin然后把需输出的固定内容写在里面,而需要变的内容做为变量传进去就行咯,以后,在需要用到的时候直接调用传参~

如果配合 compass的话,一些常用的他都给封装好了的~

---------- 下午补充回答 ---------

评论里面不能放代码块:

比如你已经安装了compasssass,下面写一个使用圆角的例子:

@import "compass/css3";
.rounded {
    @include border-radius(5px);
}

最后生成结果如下:

.rounded {
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -o-border-radius: 5px;
    -ms-border-radius: 5px;
    -khtml-border-radius: 5px;
    border-radius: 5px;
}

关于compass的一些用法可以去参看一下阮一峰老师的这篇博客:http://www.ruanyifeng.com/blog/2012/11/compass.html

一个比较好的处理浏览器前缀的解决方案是autoprefixer

只写标准的,不用写其他浏览器的前缀了。
sass编译后,再用autofixer处理下,不用你自己写个sass的混入方法,多此一举了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题