[英]Sass @each loop for attribute selector
I'm having trouble output attribute selectors in a @each loop. 我在@each循环中遇到输出属性选择器的问题。 The CSS output renders
'{$type}'
. CSS输出呈现
'{$type}'
。 How would I do this correctly? 我该如何正确地做到这一点?
SASS 上海社会科学院
@each $type in text, email
input[type='{$type}']
background-color: $white
border: 2px solid $loblolly
border-radius: 6px
color: $black
font-family: $gotham
font-size: $h5
height: 2.75rem
padding: 0 .625rem 0 .3125rem
text-indent: .3125rem
transition: border-color .5s ease background-color .5s ease
CSS (OUTPUT) CSS(输出)
input[type='{$type}'] {
background-color: #fff;
border: 2px solid #c4d0d6;
border-radius: 6px;
color: #242934;
font-family: "Gotham A", "Gotham B", Helvetica, Arial, sans-serif;
font-size: 1.125rem;
height: 2.75rem;
padding: 0 0.625rem 0 0.3125rem;
text-indent: 0.3125rem;
transition: border-color 0.5s ease background-color 0.5s ease;
}
input[type='{$type}'] {
background-color: #fff;
border: 2px solid #c4d0d6;
border-radius: 6px;
color: #242934;
font-family: "Gotham A", "Gotham B", Helvetica, Arial, sans-serif;
font-size: 1.125rem;
height: 2.75rem;
padding: 0 0.625rem 0 0.3125rem;
text-indent: 0.3125rem;
transition: border-color 0.5s ease background-color 0.5s ease;
}
You are using the $type
variable wrong. 您正在使用
$type
变量错误。 You need to replace {$type}
with #{$type}
: 您需要替换
{$type}
用#{$type}
:
@each $type in text, email
input[type='#{$type}']
background-color: $white
border: 2px solid $loblolly
border-radius: 6px
color: $black
font-family: $gotham
font-size: $h5
height: 2.75rem
padding: 0 .625rem 0 .3125rem
text-indent: .3125rem
transition: border-color .5s ease background-color .5s ease
You can also generate the rules as Pete mentioned : 您也可以像Pete提到的那样生成规则:
$white: #fff
$loblolly: green
$black: black
$gotham: 'sans-serif'
$h5: 16px
%input-styles
background-color: $white
border: 2px solid $loblolly
border-radius: 6px
color: $black
font-family: $gotham
font-size: $h5
height: 2.75rem
padding: 0 .625rem 0 .3125rem
text-indent: .3125rem
transition: border-color .5s ease background-color .5s ease
@mixin input-types
@each $type in text, email
input[type='#{$type}']
@extend %input-styles
@include input-types
This generates the following output: 这会生成以下输出:
input[type='text'], input[type='email'] {
/** ... */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.