我想要一个返回 HTML5 输入类型列表的 mixin 函数。我想在一个地方管理这个,随着新类型的出现,改变函数,而不是代码中其他地方的所有地方。
问题似乎是 mixins 的设计初衷不是为了返回可以在 CSS 中的花括号之外使用的字符串。这是我的 mixin(当前返回错误)以及我如何使用它的示例:
/*
* Set all the up-and-coming input text types here for easier reference
* Does not include types that are not meant to be displayed full width, such as:
type=number, type=range, type=date, type=color
*/
@mixin input_text_types( $focus:false ) {
@if $focus {
@return #{input[type=text]:focus, input[type=password]:focus, input[type=search]:focus, input[type=email]:focus, input[type=url]:focus, input[type=tel]:focus};
} @else {
@return #{input[type=text], input[type=password], input[type=search], input[type=email], input[type=url], input[type=tel]};
}
}
正在使用:
@include input_text_types() {
width: 80%;
}
我得到的错误就像error sass/style.scss (Line 134 of sass/_functions.scss: Invalid CSS after "...@return #{input": expected "}", was "[type=text]:foc...")
我尝试在使用和不使用@return
指令的情况下格式化输出,并使用不同的方式将字符串值括起来(在引号中、在单引号中、在带有哈希的大括号中)。以前有人尝试过这样做吗?