如果设置了jQuery,如何更改:-moz-placeholder颜色?

时间:2012-07-09 11:33:45

标签: jquery css html5 placeholder

我遇到了一个问题,即如果输入字段的背景颜色发生变化,占位符颜色会混入太多。

我已经解决了可读的文字颜色问题,因此正确地返回正确的浅色或深色。

我不能为我的生活弄清楚如何将CSS属性设置为特定输入框的计算颜色。请给一些指导?

input:-moz-placeholder
{
    color: #BBBBBB;
}
input::-webkit-input-placeholder
{
    color: #BBBBBB;
}

返回的颜色为#222222,但$('#input').css()调用不起作用,因为它直接针对元素CSS,而不是元素。

1 个答案:

答案 0 :(得分:6)

在此解决方案中,我首先动态地将样式块附加到< head>在页面加载:

// add style block to the <head> with default placeholder css on page load
var defaultColor = 'BBBBBB';
var styleContent = 'input:-moz-placeholder {color: #' + defaultColor + ';} input::-webkit-input-placeholder {color: #' + defaultColor + ';}';
var styleBlock = '<style id="placeholder-style">' + styleContent + '</style>';
$('head').append(styleBlock);

然后,要更改占位符文本颜色,我只需更新样式块的内容:

var randomColor = Math.floor(Math.random()*16777215).toString(16);
styleContent = 'input:-moz-placeholder {color: #' + randomColor + ';} input::-webkit-input-placeholder {color: #' + randomColor + ';}'
$('#placeholder-style').text(styleContent);

查看jsFiddle:

Change placeholder text color with jQuery