作者SansWord (是你)
看板Web_Design
标题Re: [问题] 如何改成精简的写法
时间Thu Jul 10 02:17:38 2014
※ 引述《ponba (胖爸)》之铭言:
: @include icon("icon-library", "\e621", $pon-icon);
: @include icon("icon-calculate", "\e63a", $pon-icon);
: @include icon("icon-clock", "\e648", $pon-icon);
: @include icon("icon-bars", "\e698", $pon-icon);
: @include icon("icon-cog2", "\e690", $pon-icon);
: 上面是设定值,下面是想要变成的CSS
: .pon-icon-library:before {
: font-family: $pon-icon;
: content: "\e621";
: }
: 目前有想到的方式为
: @mixin pon-icon($icon){
: font-family: $pon-icon;
: content: $icon;
: }
: .pon-icon-library:before { @include pon-icon("\e621"); }
: 请问如何用类似回圈或其它较精简的方式改写?
: 如果可用for-each直接把@include icon的值抓出来就好了。
: 谢谢
: ※ 编辑: ponba (220.132.131.252), 07/08/2014 22:22:54
: → mmis1000:scss? 07/08 22:59
: → superpai:参考 http://blog.sass-lang.com/posts/184094 看看 07/09 06:01
sass 在 3.3 之後开始支援 map
http://viget.com/extend/sass-maps-are-awesome
可参考这篇使用
: @include icon("icon-library", "\e621", $pon-icon);
: @include icon("icon-calculate", "\e63a", $pon-icon);
: @include icon("icon-clock", "\e648", $pon-icon);
: @include icon("icon-bars", "\e698", $pon-icon);
: @include icon("icon-cog2", "\e690", $pon-icon);
: .pon-icon-library:before {
: font-family: $pon-icon;
: content: "\e621";
: }
$map: ("icon-library": "\e621", "icon-calculate": "\e63a",
"icon-clock": "\e648", "icon-bars": "\e698", "icon-cog2": "\e690");
// 实际上不能换行,要整个写在一起,这边是为了让您易读
@each $type, $content in $map {
.pon-#{$type}:before {
font-family: $pon-icon;
content: $content;
}
}
大概像这样,我习惯上是写 sass, 你看一下这样 scss 能不能过。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.71.206.240
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Web_Design/M.1404929862.A.200.html
1F:推 ponba:感谢~~虽然scss不支援,但或许也是另种选择 07/10 20:32