SCSS/CSS のプレースホルダー ミックスイン
プレースホルダー用の SASS ミックスインを作成する場合、次のような単純なミックスインでは不十分な場合があります。渡されるコロンとセミコロンの数:
<code class="scss">@mixin placeholder ($css) { ::-webkit-input-placeholder {$css} :-moz-placeholder {$css} ::-moz-placeholder {$css} :-ms-input-placeholder {$css} }</code>
@content ディレクティブの使用
静的 CSS をミックスインに正確に渡すには必要に応じて、@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 以降では、オプションの at-root ミックスインを使用して、ネストされたセレクターとネストされていないセレクターを効果的に処理できます。
<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 中国語 Web サイトの他の関連記事を参照してください。