HTML5技术

使用CSS修改HTML5 input placeholder颜色( 转载 ) - 兜兜里有糖哦

字号+ 作者:H5之家 来源:博客园 2016-04-03 11:00 我要评论( )

问题:Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用: input[placeholder], [placeholder], *[placeholder] { color : red !important ;} HTML代码: 运行结果值还是灰色,Color:red没有作用。有什么方法可以修改占位文本的颜色吗?我

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

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

HTML代码:

运行结果值还是灰色,Color:red没有作用。有什么方法可以修改占位文本的颜色吗?我在浏览器里安装了jQuery占位文本插件,但仍然无用。

回答:

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

WebKit和Blink(Safari,Google Chrome, Opera15+)使用伪元素。

::-webkit-input-placeholder

Mozilla Firefox 4-18使用伪类:

:-moz-placeholder

Mozilla Firefox 19+ 使用伪元素:

::-moz-placeholder

IE10使用伪类:

:-ms-input-placeholder

CSS选择器

因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定。

color: #999; } :-moz-placeholder { color: #999; } ::-moz-placeholder { color: #999; } :-ms-input-placeholder { 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 { 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; } :-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; }

还有一种,不用CSS和占位文本,同样能得到相同效果。

文章来源:

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    HTML5 进阶系列:拖放 API 实现拖放排序 - _林鑫

    2017-05-02 11:02

  • 【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

    【Vue 入门】使用 Vue2 开发一个展示项目列表的应用 - zhangjk

    2017-04-30 16:00

  • 对于Bootstrap的介绍以及如何使用 - novai-L

    对于Bootstrap的介绍以及如何使用 - novai-L

    2017-04-29 09:00

  • 在Delphi下使用迅雷APlayer组件进行免注册开发 - Delphi力量

    在Delphi下使用迅雷APlayer组件进行免注册开发 - Delphi力量

    2017-04-28 15:00

网友点评
d