Chrome支持input[type=text]元素的占位符属性(其他元素可能也支持)。
但以下CSS对占位符的值没有任何作用:
输入[占位符]、[占位符],*[占位符]{颜色:红色!重要的}<input-type=“text”placeholder=“Value”>
但Value仍将保持灰色而不是红色。
是否有方法更改占位符文本的颜色?
Chrome支持input[type=text]元素的占位符属性(其他元素可能也支持)。
但以下CSS对占位符的值没有任何作用:
输入[占位符]、[占位符],*[占位符]{颜色:红色!重要的}<input-type=“text”placeholder=“Value”>
但Value仍将保持灰色而不是红色。
是否有方法更改占位符文本的颜色?
当前回答
以下是CSS选择器的解决方案
::-webkit-input-placeholder { /* WebKit, Blink, Edge */
color: #909;
}
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #909;
opacity: 1;
}
::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #909;
opacity: 1;
}
::-ms-input-placeholder { /* Microsoft Edge */
color: #909;
}
:-ms-input-placeholder { /* Internet Explorer 10-11 */
color: #909;
}
WebKit、Blink(Safari、Google Chrome、Opera 15+)和Microsoft Edge使用了伪元素:::-webkit输入占位符。Mozilla Firefox 4到18使用了一个伪类::-moz占位符(一个冒号)。Mozilla Firefox 19+使用了一个伪元素:::-moz占位符,但旧选择器仍将工作一段时间。Internet Explorer 10和11正在使用伪类::-ms输入占位符。InternetExplorer9及更低版本根本不支持占位符属性,而Opera12及更低版本不支持任何占位符CSS选择器。
其他回答
尝试这将有助于您,这将在您最喜欢的浏览器中工作:
::-webkit-input-placeholder {
/* Chrome/Opera/Safari */
color: pink;
}
::-moz-placeholder {
/* Firefox 19+ */
color: pink;
}
:-moz-placeholder {
/* Firefox 18- */
color: pink;
}
这个怎么样
<input type=“text”value=“placeholder text”onfocus=“this.style.color='#000';this.value=“”;“style=”颜色:#f00;" />
没有CSS或占位符,但您可以获得相同的功能。
不同浏览器中特定元素的占位符颜色。
HTML
<input class='contact' type="email" placeholder="majed@firefly.com">
CSS
.contact::-webkit-input-placeholder { /* Chrome/Opera/Safari */
color: pink;
}
.contact::-moz-placeholder { /* Firefox 19+ */
color: pink;
}
.contact:-ms-input-placeholder { /* IE 10+ */
color: pink;
}
.contact:-moz-placeholder { /* Firefox 18- */
color: pink;
}
添加一个非常简单的可能性:CSS过滤器!
它将设置所有内容的样式,包括占位符。
下面将在同一调色板上设置两个输入元素,使用色调过滤器进行颜色更改。它现在在浏览器中呈现得很好(除了…)
输入{滤镜:棕褐色(100%)饱和(400%)灰度(0)对比度(200%)色调旋转(68deg)反转(18%);}<input placeholder=“Hello world!”/><input-type=“date”/><br><输入类型=“范围”/><input-type=“color”/>
要允许用户使用输入类型颜色进行动态更改,或查找细微差别,请查看以下片段:
发件人:Codepen
函数stylElem(){stylo.dataset.hue=((parseInt(stylo.value.substring(1),16))/46666).toFixed(0)Array.from(document.querySelectorAll('输入,音频,视频')).forEach(函数(e){e.style.cssText+=“;滤镜:棕褐色(100%)饱和(400%)灰度(0)对比度(200%)色调旋转(”+styl.dataset.hue+“deg)反转(”+(styl.ddataset.hue/3.6)+“%)”out.innerText=e.style.css文本})()}stylElem()正文{背景:黑色;颜色:白色}选择颜色!<input type=“color”id=“stylo”oninput=“stylElem()”><br><div id=“out”></div><p><input placeholder=“Hello world!”/><input-type=“date”/><br><输入类型=“范围”/><br><音频控件src=“#”></audio><br><br><视频控件src=“#”></video>
Css过滤器文档:https://developer.mozilla.org/en-US/docs/Web/CSS/filter
我不记得我在哪里找到了这个代码片段(它不是我写的,不记得我是在哪里找到的,也不记得是谁写的)。
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
只需加载此JavaScript代码,然后通过调用以下规则使用CSS编辑占位符:
form .placeholder {
color: #222;
font-size: 25px;
/* etc. */
}