Color modification of HTML5 input placeholder

不言
Release: 2018-06-28 15:29:16
Original
1687 people have browsed it

This article mainly introduces the knowledge about HTML5 input placeholder color modification. Friends who need it can refer to it

Chrome supports the input=[type=text] placeholder text attribute, but the following CSS styles are not Doesn’t work:

CSS

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

HTML input statement

<input type="text" placeholder="Value" />
Copy after login

The running result value is still gray, Color: red has no effect. Is there any way to change the color of placeholder text? I installed the jQuery placeholder text plugin in my browser, but it still doesn't work. (!important is only recognized by IE7 and firefox)

Answer:

toscho: There are three implementation methods: pseudo-elements (pseudo-elements), pseudo-classes (pseudo-classes) and Notihing.
WebKit and Blink (Safari, Google Chrome, Opera15) use pseudo-elements

::-webkit-input-placeholder
Copy after login

Mozilla Firefox 4-18 uses pseudo-classes

:-moz-placeholder
Copy after login

Mozilla Firefox 19 uses pseudo-elements

::-moz-placeholder
Copy after login

IE10 uses pseudo-classes

:-ms-input-placeholder
Copy after login

CSS selectors in versions below IE9 and Opera12 do not support placeholder text. It should be noted that pseudo elements will play the real role of elements in Shadow DOM.

CSS Selector

Because the CSS selector of each browser is different, separate settings need to be made for each browser.

::-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; 
}
Copy after login

Matt: The code for textareas (text box stretchable) style is as follows:

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { 
color: #636363; 
} 
input:-moz-placeholder, textarea:-moz-placeholder { 
color: #636363; 
}
Copy after login

brillout.com: The font color of input and Textarea is red. All styles must be specific to different selectors and should not be packaged for overall processing, because if one of them fails, the others will fail.

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

James Donnelly: In Firefox and IE, how to overwrite the placeholder color with the normal input text color:

::-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; 
}
Copy after login

There is another good way:

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; 
}
Copy after login

The last one was found online:

$(&#39;[placeholder]&#39;).focus(function() { 
var input = $(this); 
if (input.val() == input.attr(&#39;placeholder&#39;)) { 
input.val(&#39;&#39;); 
input.removeClass(&#39;placeholder&#39;); 
} 
}).blur(function() { 
var input = $(this); 
if (input.val() == &#39;&#39; || input.val() == input.attr(&#39;placeholder&#39;)) { 
input.addClass(&#39;placeholder&#39;); 
input.val(input.attr(&#39;placeholder&#39;)); 
} 
}).blur(); 
$(&#39;[placeholder]&#39;).parents(&#39;form&#39;).submit(function() { 
$(this).find(&#39;[placeholder]&#39;).each(function() { 
var input = $(this); 
if (input.val() == input.attr(&#39;placeholder&#39;)) { 
input.val(&#39;&#39;); 
} 
}) 
});
Copy after login

The rule for calling this code is to load Javascript first and then use CSS to modify the placeholder attributes.

form .placeholder { 
color: #222; 
font-size: 25px; 
/* etc */ 
}
Copy after login

user1729061: You can get the same effect without using CSS and placeholder text.

input type="text" value="placeholder text" onfocus="this.style.color=&#39;#000&#39;; 
this.value=&#39;&#39;;" style="color: #f00;"/>
Copy after login

The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

Use PHP and HTML5 FormData to achieve refresh-free file upload

HTML5 uses DOM for custom control

html5 canvas implementation draws simple rectangles and triangles

The above is the detailed content of Color modification of HTML5 input placeholder. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!