Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
占位符的CSS-强制SAS将每个选择器呈现为单独的CSS块_Css_Sass_Placeholder - Fatal编程技术网

占位符的CSS-强制SAS将每个选择器呈现为单独的CSS块

占位符的CSS-强制SAS将每个选择器呈现为单独的CSS块,css,sass,placeholder,Css,Sass,Placeholder,我正在设置我的标记中的占位符文本的样式,我发现了一些奇怪的行为 如果我简单地说一下,Chrome会正确地呈现占位符文本: :focus::-webkit-input-placeholder { position: absolute; left: -9000px; } 但是,如果我尝试在同一行中包含多个浏览器,则根本不会显示: :focus::-webkit-input-placeholder, :focus:-moz-placeholder, :focus::-moz-placehol

我正在设置我的
标记中的占位符文本的样式,我发现了一些奇怪的行为

如果我简单地说一下,Chrome会正确地呈现占位符文本:

:focus::-webkit-input-placeholder {
  position: absolute;
  left: -9000px;
}
但是,如果我尝试在同一行中包含多个浏览器,则根本不会显示:

:focus::-webkit-input-placeholder, :focus:-moz-placeholder, :focus::-moz-placeholder, :focus:-ms-input-placeholder {
    position: absolute;
    left: -9000px; 
}
理想情况下,我希望我的SASS如下所示,但无论出于何种原因,我都不能用逗号分隔不同的选择器

:focus {
  outline: none;
  &::-webkit-input-placeholder, &:-moz-placeholder, &::-moz-placeholder, &:-ms-input-placeholder {
      // Hide placeholder text on focus
      position: absolute;
      left: -9000px;
  }
}
是否有任何SASS语法强制它使用自己的块处理每个选择器,如下面的示例?

:focus::-webkit-input-placeholder {
    position: absolute;
    left: -9000px;
}

:focus:-moz-placeholder {
    position: absolute;
    left: -9000px;
}

// etc.

通过传递给mixin本身的内容块,您可以轻松创建mixin并定义所有占位符的样式,如下所示:

@mixin placeholder {

    @each $placeholder
        in "::-webkit-input-placeholder",
           ":-moz-placeholder",
           "::-moz-placeholder", 
           ":-ms-input-placeholder" {

        /* for each placeholder in the above list print the browser vendor
           selector, chained with its parent element */

        &#{$placeholder} {
            /* content is replaced with the actual style, passed as a block
               in the mixin inclusion below */

            @content;
        }
    }

}


:focus {
    @include placeholder {
        color: #ccc;
        font-style: italic;
    }
}
这将产生以下输出

:focus::-webkit-input-placeholder {
    color: #ccc;
    font-style: italic;
}
:focus:-moz-placeholder {
    color: #ccc;
    font-style: italic;
}
:focus::-moz-placeholder {
    color: #ccc;
    font-style: italic;
}
:focus:-ms-input-placeholder {
    color: #ccc;
    font-style: italic;
}

您可以在

上测试sass代码,原因如下:谢谢,我认为原因与此类似。这就是为什么我在寻找一种时髦的方式。可能是重复的