This is somewhat annoying. It appears that webkit (through chrome 13 canary) is having a right go at styling various input types and it's clashing with the design in a major way.
In particular, these are causing me a headache:
- selected element glow (via outline)
- placeholder= text style
- ugly glow around focused textarea and input fields
I am using boilerplate and modernizr.
A simple input[type=search]
with a placeholder overrides the text styling.
I know you can target it via
input::-webkit-input-placeholder
However, this does not seem to be able to style things like text-shadow
- which is a bit crap. Does anyone know if this is likely a bug that will be fixed or do I need to fall back on to a javascript placeholder solution?
The search input comes out with a white bg and removes the rounded corners defined in the base CSS class. I found a reset code:
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
display: none;
}
input[type=search] {
/* the webkit overrides need to stay at the top */
-webkit-appearance: textfield;
-webkit-box-sizing: content-box;
/* your styles here */
}
and it kind of helps.
The glow around form elements I fix by setting outline: none
.
I guess what I am really after is a CSS reset that takes out any pre-defined styles in the user agent stylesheet
(according to web inspector) that affect it. Is there any reset available that can do that so despite of the doctype being HTML5, the elements are rendered as simply as they were before HTML5 and follow implicit rules setup for them in the base CSS?
I hate to say it but despite of all its memory hogging issues and slowness of plugins, FireFox 4 actually renders everything perfectly. Webkit should not be trying to style things for you, just provide an API that allows you to do so if you wanted to...
<input type=search>
? The decoration is the only thing that makes it different from a normaltype=text
field. You may as well just use<input type=text>
if you don't want the decoration. – Odaodab