博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 input placeholder 颜色 改动
阅读量:6437 次
发布时间:2019-06-23

本文共 3044 字,大约阅读时间需要 10 分钟。

:Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用:

CSS

input[placeholder], [placeholder], *[placeholder] {   color:red !important;}

HTML input语句


执行结果值还是灰色。
Color:red
没有作用。有什么方法能够改动占位文本的颜色吗?我在浏览器里安装了jQuery占位文本插件,但仍然无用。(!important仅仅有IE7和firefox能识别)

回答:

有三种实现方式:伪元素(pseudo-elements)、伪类( pseudo-classes)和Notihing。

WebKit和(Safari,Google Chrome, Opera15+)使用伪元素
::-webkit-input-placeholder
Mozilla Firefox 4-18使用伪类 
:-moz-placeholder
Mozilla Firefox 19+ 使用伪元素
::-moz-placeholder
IE10使用伪类 
:-ms-input-placeholder

IE9和Opera12下面版本号的CSS选择器均不支持占位文本。须要注意的是伪元素在Shadow DOM里会起到元素的真实作用。


CSS选择器

由于每一个浏览器的CSS选择器都有所差异,所以须要针对每一个浏览器做单独的设定。

::-webkit-input-placeholder { /* WebKit browsers */    color:    #999;}:-moz-placeholder { /* Mozilla Firefox 4 to 18 */    color:    #999;}::-moz-placeholder { /* Mozilla Firefox 19+ */    color:    #999;}:-ms-input-placeholder { /* Internet Explorer 10+ */    color:    #999;}

textareas(文本框可拉伸)风格样式的代码,例如以下:
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {  color: #636363;}input:-moz-placeholder, textarea:-moz-placeholder {  color: #636363;}

input和Textarea的字体颜色均为红色。
全部样式都要针对不同的选择器而定,不要打包总体处理,由于当中一个出问题,其它的都会失效。

*::-webkit-input-placeholder {    color: red;} *:-moz-placeholder {    color: red;} *:-ms-input-placeholder {    /* IE10+ */    color: red;}

在Firefox和IE里,正常input文本颜色覆盖占位符颜色的方法:

::-webkit-input-placeholder {     color: red; text-overflow: ellipsis; }:-moz-placeholder {     color: #acacac !important; text-overflow: ellipsis; }::-moz-placeholder {     color: #acacac !important; text-overflow: ellipsis; } /* for the future */:-ms-input-placeholder {     color: #acacac !important; text-overflow: ellipsis; }

另一种好办法:
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {     color:    #666;}input:-moz-placeholder, textarea:-moz-placeholder {     color:    #666;}input::-moz-placeholder, textarea::-moz-placeholder {     color:    #666;}input:-ms-input-placeholder, textarea:-ms-input-placeholder {     color:    #666;}

最后一种是从网上找的:

$('[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 */}

不用CSS和占位文本。相同能得到相同效果。

input type="text" value="placeholder text" οnfοcus="this.style.color='#000'; this.value='';" style="color: #f00;"/>

原文:

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5153110.html,如需转载请自行联系原作者

你可能感兴趣的文章
Google C++ Coding Style:右值引用(Rvalue Reference)
查看>>
docker登录
查看>>
php安装filter扩展模块
查看>>
Android——发送和接收广播
查看>>
上海网域CEO肖确伟:IDC精细化运营探讨
查看>>
DirectShow开发快速入门之慨述
查看>>
Kubernetes排错:用容器的元数据提供新思路
查看>>
《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.12. File-5.22...
查看>>
C++判断文件是否存在
查看>>
DockOne微信分享(八十四):Docker在B站的实施之路
查看>>
新加坡樟宜机场将进入“刷脸”时代 自助通关是亮点
查看>>
PHP设计模式——享元模式
查看>>
SEO软件WebCEO为网络市场注入新能量
查看>>
撰写日志类
查看>>
数据结构---队列C语言实现
查看>>
★电车难题的n个坑爹变种
查看>>
李笑来回应ICO监管:配合清退工作,建议将金融科技纳入监管沙盒
查看>>
CoreOS集成Kubernetes核心组件Kubelet
查看>>
手把手教你建网站--程序小白适用篇
查看>>
阿里云移动测试平台MQC移动测试沙龙第3期【北京站】
查看>>