Internet Explorer 占位符样式问题

Posted

技术标签:

【中文标题】Internet Explorer 占位符样式问题【英文标题】:Internet Explorer placeholder styling issue 【发布时间】:2014-11-24 00:26:09 【问题描述】:

尝试将样式应用于占位符我遇到了一个问题,即在 IE(所有版本)中占位符文本颜色不适用。只取文本输入的颜色

:-ms-input-placeholder   
    color: white; 


input 
    color:black;

应用此代码后,占位符的颜色将为黑色。

可能是什么问题?

【问题讨论】:

【参考方案1】:

您需要为特定输入指定此规则:

input:-ms-input-placeholder   
    color: white; 


input 
    color:black;

来自Internet Explorer Dev Center:

选择器:-ms-input-placeholder ...

请注意,这仅适用于 IE>10 浏览器。

【讨论】:

您确定没有启用兼容模式并且您的浏览器不能在 Quirks 模式下工作吗?你的页面上有 doctype 吗? 是的 - 我确定。 Doctype也在我的html 你有一些页面示例吗?这个链接对你有用吗? jsfiddle.net/ct0Lx3t3 。此外,如果您使用 3rd 方插件为不受支持的浏览器添加占位符,您是否可以禁用它们并查看它们是否导致了问题? 删除所有 js 添加并留下 css - 不起作用。在 jsFiddle 中它工作正常。奇怪的是,我的 css 用于输入元素。 @eatmypants 这很奇怪,在另一个地方似乎有问题。你有活生生的例子吗?【参考方案2】:

如果您正在寻找对所有浏览器的支持,请查看以下答案:

How to support placeholder attribute in IE8 and 9

【讨论】:

OP 寻找样式占位符,而不是在旧浏览器中启用它。此外,仅链接的答案应该是 cmets 而不是 meta.stackexchange.com/questions/8231/… 已经在用了,但是我加了之后- IE 或标记为重复【参考方案3】:

解决方案:

在我的 css 中,我为表单输入 (div_name form > input ) 指定了文本的颜色,这对于浏览器来说是比指定为选择器更有价值的参数:-ms-input-placeholder 占位符颜色。 (这很奇怪。它们用于不同的目的,但没关系)

【讨论】:

【参考方案4】:

IE11 需要 !important 标志来覆盖默认的用户代理样式。

这是适用于 IE 版本 10 和 11 的规则集。

/* - Internet Explorer 10–11
   - Internet Explorer Mobile 10-11 */
:-ms-input-placeholder 
    color: white !important;

有关所有浏览器的详细信息,请参阅问题Placeholder CSS not being applied in IE 11 的答案。

对于早于 10 的 IE 版本,您需要一个 polyfill 来支持占位符。这些 CSS 会有所不同。参考 polyfill。

【讨论】:

以上是关于Internet Explorer 占位符样式问题的主要内容,如果未能解决你的问题,请参考以下文章

占位符不适用于 Internet Explorer

占位符属性在 Internet Explorer 中不起作用

为 Internet Explorer 设置占位符? [复制]

占位符文本仅在 Internet Explorer 中可见

在 Internet Explorer 中制作隐形“占位符”很热门?

Internet Explorer 缺乏占位符支持,特别是密码字段