webkit htm5 css reset for input elements

20,444

Solution 1

A good form reset stylesheet (with a wee bit of JS) is Formalize.

Formalize resets everything and than works to ensure consistent forms across browsers.

Solution 2

Although this may require you to define additional styling, I typically place -webkit-appearance:none on most form elements.

Share:
20,444
Dimitar Christoff
Author by

Dimitar Christoff

Javascript is to java what hamster is to ham. Follow me on Github

Updated on September 17, 2020

Comments

  • Dimitar Christoff
    Dimitar Christoff over 3 years

    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...

  • Dimitar Christoff
    Dimitar Christoff almost 13 years
    that's the thing, they don't display the same in every browser. I am very happy with how FireFox does it but not webkit.
  • Jose Faeti
    Jose Faeti almost 13 years
    Then I would definitely start with a reset stylesheet, until now I've been happy with the YUI CSS Reset, Fonts and Base for example. Anyway in the end I will end up creating my own stylesheet cause many of those things are not needed for my websites and there are others wich I need and aren't there. But it's really helpful anyway.
  • Dimitar Christoff
    Dimitar Christoff almost 13 years
    boilerplate uses a mixed bag css reset that takes elements from YUI one as well as others. but they don't cover the html5 input element styles.
  • Dimitar Christoff
    Dimitar Christoff almost 13 years
    cheers, whereas it's not something I would use, github.com/nathansmith/formalize/blob/master/assets/css/… offers some interesting ideas so I will accept it.