为啥 Firefox 会改变我的输入/占位符颜色?

Posted

技术标签:

【中文标题】为啥 Firefox 会改变我的输入/占位符颜色?【英文标题】:Why is Firefox altering my input/placeholder colours?为什么 Firefox 会改变我的输入/占位符颜色? 【发布时间】:2013-11-19 17:05:57 【问题描述】:

我已尽一切努力让 Firefox 使用我指定的颜色作为表单上占位符的颜色。包括在我的 CSS 中使用 :-moz-placeholder 和所有内容,但生成的颜色从来不是我指定的。

我知道 Firefox 使用浅灰色作为其默认输入/占位符颜色,但是如果它没有真正完全改变它,为什么还有一个选项来改变它?

这是我制作的一个代码笔,用于演示包括所有 Firefox 特定的 CSS:

旧:http://codepen.io/JTLR/pen/BpJft

新:http://codepen.io/JTLR/pen/EkJhH

【问题讨论】:

相关:***.com/q/2610497/266535 【参考方案1】:

这是 Firefox 中默认的占位符样式:

input::-moz-placeholder,
textarea::-moz-placeholder 
  opacity: 0.54;

完全没有任何颜色样式(参考是http://hg.mozilla.org/mozilla-central/file/a07aebef20e7/layout/style/forms.css#l160)。这很重要,因为这样如果您只是在输入中设置colorbackground,并且没有任何特殊的占位符样式,它会拾取您设置的颜色,但只会让它看起来更淡。

因此,如果您想完全重新设置占位符的样式,请将其不透明度设置为 1。

【讨论】:

所以改变不透明度可以解决问题! codepen.io/JTLR/pen/EkJhH 太棒了。正是我想要的!【参考方案2】:

Firefox 19+ 需要 2 个冒号..::

所以使用::-moz-placeholder

引入 ::-moz-placeholder 伪元素以替代 Firefox 19 中已弃用的 :-moz-placeholder 伪类。

相对于:-moz-placeholder

:-moz-placeholder 伪类将被弃用,取而代之的是 Firefox 19 中的 ::-moz-placeholder 伪元素。

Working CodePen example - 仅限 FF。

::-moz-placeholder 
  color:red;

除此之外,这是一个选择器,而不是属性。因此,

p  :-moz-placeholder: #000000; 

不正确。

【讨论】:

对不起,我确实知道,只是一个假人!我现在修改了我的笔,如您所见,颜色仍然不同。

以上是关于为啥 Firefox 会改变我的输入/占位符颜色?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 IE 10 中 CSS 文本颜色会覆盖占位符颜色?

如何更改焦点上的占位符颜色?

Firefox 23.0.1 Chrome 23.0.1271.64 和 IE 8 之间占位符的字体颜色差异

将输入占位符颜色更改为更暗

仅更改输入占位符 * 颜色

IE 和 Firefox 中不显示文本输入占位符