jQuery更改占位符文本颜色

Posted

技术标签:

【中文标题】jQuery更改占位符文本颜色【英文标题】:jQuery change placeholder text color 【发布时间】:2013-02-04 17:03:03 【问题描述】:

是否可以在 jQuery 中使用 "::-webkit-input-placeholder" 来设置占位符文本的颜色?

类似这样的:

$("input::-webkit-input-placeholder").css("color" : "#b2cde0");

【问题讨论】:

看看这个:***.com/questions/2610497/… 很高兴看到这个:***.com/a/20886968/1830909 【参考方案1】:

你不能真正用 javascript 修改伪选择器。您必须修改现有的 <style> element。

如果可能,创建一个类:

.your-class::-webkit-input-placeholder 
    color: #b2cde0

并将其添加到元素中:

 $('input').addClass('your-class');

【讨论】:

我相信大多数时候使用 jQuery 为占位符文本设置样式的重点是动态颜色。【参考方案2】:

如果您没有样式表,并且想要动态地注入 CSS,您可以使用以下方法:

$('body').append('<style>.my_class::placeholdercolor:red</style>')

只需使用 my_classcolor 作为占位符。

有一个通用功能很方便:

function change_placeholder_color(target_class, color_choice) 
    $("body").append("<style>" + target_class + "::placeholdercolor:" +  color_choice + "</style>")

用法

change_placeholder_color('.my_input', 'red')

【讨论】:

【参考方案3】:

只需添加这个。它将继承 input[type=text]:focus new color 中的颜色

.your-class ::placeholder color: inherit;

【讨论】:

【参考方案4】:

这是一个使用 jQuery 动态设置伪元素样式的示例——它是创建一个 &lt;style&gt; 元素,将其文本内容设置为所需的样式声明,并将其附加到文档中。

这是一个简单的单页示例:

<!doctype html>                                                                                                                                                                 
<html>
    <head>
        <title>Dynamic Pseudo-element Styles</title>
        <script src="https://code.jquery.com/jquery-3.2.1.js"></script>
        <script> 
$(document).ready(function()                       
    createStyles();
    $('#slider-font-size').on('change', createStyles);

    function createStyles() 
        // remove previous styles
        $('#ph-styles').remove();

        // create a new <style> element, set its ID
        var $style = $('<style>').attr('id', 'ph-styles');

        // get the value of the font-size control
        var fontSize = parseInt($('#slider-font-size').val(), 10);

        // create the style string: it's the text node
        // of our <style> element
        $style.text(
            '::placeholder  ' +
                'font-family: "Times New Roman", serif;' +
                'font-size: ' + fontSize + 'px;' +
            '');

        // append it to the <head> of our document
        $style.appendTo('head');
       
);     
        </script>
    </head>      

    <body>       
        <form>
            <!-- uses the ::placeholder pseudo-element style in modern Chrome/Firefox -->   
            <input type="text" placeholder="Placeholder text..."><br>

            <!-- add a bit of dynamism: set the placeholder font size -->
            <input id="slider-font-size" type="range" min="10" max="24">
        </form>
    </body>      
</html> 

【讨论】:

【参考方案5】:

我使用的是 MaterializeCSS;我使用 Jquery 为这样的输入字段更新 CSS

  $(".input-field").css("color", themeColor);
  $(".input-field>.material-icons").css("color", themeColor);
  $(".input-field>label").css("color", themeColor);

查看结果:

https://codepen.io/hiteshsahu/pen/EXoPRq?editors=1000

【讨论】:

该人指示他希望更改占位符样式而不是常规文本,

以上是关于jQuery更改占位符文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 更改占位符文本颜色

text 使用此输入占位符SCSS Mixin更改占位符属性的颜色。添加背景颜色或只更改文本颜色

使用 jQuery 更改占位符文本

jquery ui可排序占位符无法更改背景颜色

Tailwind CSS 更改占位符选项的文本颜色

使用 JavaScript 更改焦点占位符文本的颜色 [关闭]