moz-placeholder在Firefox中不起作用

use*_*300 6 css css3

请参阅下面的代码,占位符的CSS在Firefox(最新版本)中不起作用,但它适用于Chrome.如何为Firefox修复它?

字段有多种输入颜色,但我只有一种颜色用于占位符,因此我不想在moz-placeholder属性中指定任何类名,因此它适用于所有输入字段.

HTML:

<div class="row">
    <input type="text" placeholder="some text asdf" value="" />
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

::-webkit-input-placeholder { color:red; }
::-moz-placeholder { color:red; }
input:-moz-placeholder { color:red; }

.row input[type="text"]{
     color: blue;     
}
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/C6fjh/

小智 7

在某些情况下,与Chrome或IE相比,红色在Mozilla中显示的颜色更浅。在这种情况下,您还需要添加opacity:1。

例如

:-moz-placeholder { color: red; opacity:1;} ::-moz-placeholder { color: red; opacity:1;}

  • `opacity:1;` 是我所缺少的。谢谢 (2认同)

Jer*_*oen 6

我正在工作,只是Firefox的最后一条规则被认为更具体.试试这个:

::-webkit-input-placeholder { color:red; }
.row input[type="text"]::-moz-placeholder { color:red; }
.row input[type="text"]:-moz-placeholder { color:red; }

.row input[type="text"] {
     color: blue;     
}
Run Code Online (Sandbox Code Playgroud)

一下工作演示的小提琴.

我不确定浏览器的不同之处,或者哪个是"正确的".一个类似的实验a标签和:hover伪类是分别用FF和Chrome相同的行为:既会忽略伪类的颜色,如果该元素的选择是更具体的(如果你做同样的变化,我建议你上面得到相同的(预期?) Chrome和FF中的行为).

  • 另一个提示是,如果您需要正确显示颜色,请添加:'opacity:1;' 我正在使用FF 20.0.1,它会将占位符调暗到不到100%的不透明度.尝试将背景颜色设置为"黑色"并看到它显示为灰色.不透明度:1,它是真正的黑色. (10认同)
  • 选择器`: - moz-placeholder`是一个伪类,因此组合选择器将`input`元素作为一个真实元素(在占位符显示状态)匹配,但在原始CSS代码中,该元素的颜色设置为具有更具体选择器的规则.相反,`:: - webkit-input-placeholder`是一个伪元素,仅对应于占位符文本.Firefox即将使用伪元素作为占位符,请参阅https://developer.mozilla.org/en-US/docs/CSS/:-moz-placeholder (2认同)