Search code examples
htmlcsswidthfluid-layout

How to make an element width: 100% minus padding?


I have an html input.

The input has padding: 5px 10px; I want it to be 100% of the parent div's width(which is fluid).

However using width: 100%; causes the input to be 100% + 20px how can I get around this?

Example


Solution

  • box-sizing: border-box is a quick, easy way to fix it:

    This will work in all modern browsers, and IE8+.

    Here's a demo: http://jsfiddle.net/thirtydot/QkmSk/301/

    .content {
        width: 100%;
        box-sizing: border-box;
    }
    

    The browser prefixed versions (-webkit-box-sizing, etc.) are not needed in modern browsers.