【问题标题】:Can I obtain the "native" placeholder color for a text element across browsers?我可以跨浏览器获取文本元素的“本机”占位符颜色吗?
【发布时间】:2019-07-28 01:23:21
【问题描述】:

上下文是我需要使用从我不想更改的框架构建的选择元素(分别来自jQWidgets 的 jqxComboBox 和 jqxDropDownList),并使用它们的内置占位符。

jqxComboBox 使用属性placeholder="my text" 为它创建一个内部input,因此它在依赖于浏览器的占位符灰色中正确设置样式。

然而 jqxDropDownList 创建了一个内部span,其属性为unselectable="on",默认情况下出现在页面的字体颜色中。

我想相应地设置 jqxDropDownList 的样式,但是灰色会随着浏览器的变化而变化。是否有一种一致的方式来获取使用浏览器的占位符颜色,而不必为每个人声明不同的规则?

示例:这种灰色在 Firefox 上很合适,但在 Chrome 上却不行(这里的差异可能看起来很小,但我们的 CSS 强调了它)。

body {
    font-weight: bold;
}

input { /*just for the example*/
    width: 100%;
}
input::placeholder { /*just for the example*/
    font-weight: bold !important;
}

span[unselectable="on"] {
    color: #777777 !important;
}
<input style=type="textarea" placeholder="native browser placeholder color"><br>
<span unselectable="on">testing placeholder color emulation</span><br>
<span>what I have currently in my jqxDropDownList</span>

编辑:通过覆盖this post's accepted answer 之后的所有浏览器的占位符颜色部分解决了我的问题,但为了纯粹的知识仍然感兴趣..

【问题讨论】:

    标签: css cross-browser placeholder


    【解决方案1】:

    尝试使用color: unset 为给定元素使用默认颜色。

    【讨论】:

    • 感谢您的回答,但实际上恰恰相反:我想要一个常规跨度来获取占位符的颜色,如果我使用 unset 它会做我已经拥有的:黑色跨度
    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 2012-03-26
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 2017-05-18
    相关资源
    最近更新 更多