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

Posted

技术标签:

【中文标题】为啥在 IE 10 中 CSS 文本颜色会覆盖占位符颜色?【英文标题】:Why is CSS text color overriding placeholder color in IE 10?为什么在 IE 10 中 CSS 文本颜色会覆盖占位符颜色? 【发布时间】:2014-08-13 17:05:51 【问题描述】:

为什么-ms-input-placeholdercolor 设置被输入字段的颜色设置覆盖? (input[type=text],input[type=password], textarea, select)

在 Chrome 和 Firefox 中,这可以正常工作。

查看带有蓝色占位符文本的图像,即使 -ms-input-placeholder 设置为红色。

【问题讨论】:

【参考方案1】:

很有可能您的input[type=text] 选择器出现在样式表中的input:-ms-input-placeholder 选择器之后,这导致它具有优先权(因为两个选择器都具有相同的特定性)。如果是这种情况,您需要移动下面的占位符规则以便优先考虑。

它在 Chrome 和 Firefox 中工作的最可能原因是因为它们都使用伪元素而不是伪类来定位占位符文本,这完全不同。

【讨论】:

你是绝对正确的。但是为什么两个选择器都同样具体呢?从逻辑上讲,占位符位于输入字段内。 @Joshua Fox:因为 :-ms-input-placeholder 是一个伪类,所以选择器实际上是针对输入而不是占位符。占位符只是继承了我认为的颜色。 我的问题只是 IE 10 使用“颜色”作为占位符文本。为什么这样做超出了我的理解。

以上是关于为啥在 IE 10 中 CSS 文本颜色会覆盖占位符颜色?的主要内容,如果未能解决你的问题,请参考以下文章

输入占位符css在IE9中不起作用[重复]

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

SVG:为啥外部 css 会覆盖文本的内联样式?

Tailwind CSS 更改占位符选项的文本颜色

IE 11 无法正确呈现占位符颜色

颜色:在 ie 中的文本上透明(使用覆盖技术突出显示文本区域中的文本)?