SCSS/CSS 中的占位符 Mixin
为占位符创建 SASS mixin 时,像下面这样的简单 mixin 可能不够,因为传递给它的冒号和分号的数量:
<code class="scss">@mixin placeholder ($css) { ::-webkit-input-placeholder {$css} :-moz-placeholder {$css} ::-moz-placeholder {$css} :-ms-input-placeholder {$css} }</code>
使用@content指令
将静态CSS传递给mixin,就像如果需要,可以使用 @content 指令。下面是一个示例:
<code class="scss">@mixin placeholder { ::-webkit-input-placeholder {@content} :-moz-placeholder {@content} ::-moz-placeholder {@content} :-ms-input-placeholder {@content} } @include placeholder { font-style:italic; color: white; font-weight:100; }</code>
更多信息可以在 SASS 参考中找到,网址为 https://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixin-content。
可选的 @-root Mixin(Sass 3.4 及更高版本)
在 Sass 3.4 及更高版本中,可选的根 mixin 可用于有效处理嵌套和非嵌套选择器:
<code class="scss">@mixin optional-at-root($sel) { @at-root #{if(not &, $sel, selector-append(&, $sel))} { @content; } } @mixin placeholder { @include optional-at-root('::-webkit-input-placeholder') { @content; } @include optional-at-root(':-moz-placeholder') { @content; } @include optional-at-root('::-moz-placeholder') { @content; } @include optional-at-root(':-ms-input-placeholder') { @content; } }</code>
用法:
<code class="scss">.foo { @include placeholder { color: green; } } @include placeholder { color: red; }</code>
输出:
<code class="css">.foo::-webkit-input-placeholder { color: green; } .foo:-moz-placeholder { color: green; } .foo::-moz-placeholder { color: green; } .foo:-ms-input-placeholder { color: green; } ::-webkit-input-placeholder { color: red; } :-moz-placeholder { color: red; } ::-moz-placeholder { color: red; } :-ms-input-placeholder { color: red; }</code>
以上是如何在 SCSS/CSS 中创建一个有效的占位符混合来处理嵌套和非嵌套选择器?的详细内容。更多信息请关注PHP中文网其他相关文章!