如何更改Chrome输入日期占位符的文字颜色?

rac*_*tes 8 html css google-chrome input

我到处搜索,无法找到如何更改Chrome的阴影DOM输入日期元素的文本颜色.大多数占位符都是柔和的灰色,但Chrome的阴影DOM文本是黑色的,然后当您添加日期时,文本颜色保持不变.Chrome已经将阴影DOM文本设置为"mm/dd/yyyy",这是我需要更改的文本颜色.

<input type="date"/>
Run Code Online (Sandbox Code Playgroud)

Jon*_*son 12

如果输入字段是必需的,您可以使用:invalid选择器,如下所示:

input[type=date]:invalid::-webkit-datetime-edit {
    color: #999;
}
Run Code Online (Sandbox Code Playgroud)
<input type="date" required /><br>
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是在输入值时删除输入的类.

var el = document.getElementById('date');
el.onchange = function() {
    if (el.value === '') {
        el.classList.add("empty");
    } else {
        el.classList.remove("empty");
    }
}
Run Code Online (Sandbox Code Playgroud)
.empty {
    color: #999;
}
Run Code Online (Sandbox Code Playgroud)
<input type="date" id="date" class="empty" />
Run Code Online (Sandbox Code Playgroud)

注意:我的第二个示例(带有类的示例)将应用于所有浏览器.

一个类似的问题已经回答过了,但它并没有为我工作.

  • 这几乎就是这样的工作原理。除非您需要输入有效日期才能更改颜色。不确定输入某些值后是否可以更改日期输入的颜色。 (2认同)