我需要像sass这样的if语句:
@each $name, $char in $font-icons {
@if ($name ends with "-outline") {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
Kod*_*ham 13
不完全是你想要的,但我认为它与你可以与Sass一样接近.
使用str-index($string, $substring)你可以找出是否$name包含-outline:
@each $name, $char in $font-icons {
@if (str-index($name, '-outline')) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:刚写了一个快速的Sass函数来实际找出字符串是否以另一个字符串结束:
@function ends-with($string, $find) {
@if (str-index($string, $find) == (str-length($string) - str-length($find) + 1)) {
@return true;
} @else {
@return false;
}
}
@each $name, $char in $font-icons {
@if (ends-with($name, '-outline')) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
更新#2:如果$string包含$find多次,上面的函数将返回false .如果$string真正以以下结尾,此函数将返回true $find:
@function ends-with($string, $find) {
@if (str-slice($string, (str-length($string) - str-length($find) + 1)) == $find) {
@return true;
} @else {
@return false;
}
}
Run Code Online (Sandbox Code Playgroud)
更新#3:简化:
@function ends-with($string, $find) {
@return str-slice($string, (str-length($string) - str-length($find) + 1)) == $find;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5619 次 |
| 最近记录: |