利用CSS改变输入框的光标颜色

UED给出了一个需求,希望<input>被选中时,将光标变为绿色。我赶紧搜索解决方案,发现思路大多是:

input {
    color: #0f0;
}

这种方法的确能改变光标的默认颜色,但是负面作用是,输入的文字也变成了绿色。

幸运的是在Stack overflow上找到了一个靠谱的答案:

input,
textarea {
    font-size: 24px;
    padding: 10px;
    
    color: #0f0;
    text-shadow: 0px 0px 0px #000;
    -webkit-text-fill-color: transparent;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder{
    text-shadow: none;
    -webkit-text-fill-color: initial;
}

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        input,
        textarea {          
            color: #0f0;
            text-shadow: 0px 0px 0px #000;
            -webkit-text-fill-color: transparent;
        }

        input::-webkit-input-placeholder,
        textarea::-webkit-input-placeholder{
            text-shadow: none;
            -webkit-text-fill-color: initial;
        }
    </style>
</head>
<body>
    <input type="text" placeholder="test">
    <p></p>
    <textarea name="" cols="30" rows="10"></textarea>
</body>
</html>

参考自:http://jsfiddle.net/8k1k0awb/

posted @ 2017-05-04 22:47  高-岩  阅读(2318)  评论(0编辑  收藏  举报