Cross browser method to fit a child div to its parent's width

前端 未结 6 906
礼貌的吻别
礼貌的吻别 2020-12-04 15:01

I\'m looking for a solution to fit a child div into it\'s parent\'s width.

Most solutions I\'ve seen here are not cross-browser com

相关标签:
6条回答
  • 2020-12-04 15:37

    If you put position:relative; on the outer element, the inner element will place itself according to this one. Then a width:auto; on the inner element will be the same as the width of the outer.

    0 讨论(0)
  • 2020-12-04 15:38

    The solution is to simply not declare width: 100%.

    The default is width: auto, which for block-level elements (such as div), will take the "full space" available anyway (different to how width: 100% does it).

    See: http://jsfiddle.net/U7PhY/2/

    Just in case it's not already clear from my answer: just don't set a width on the child div.

    You might instead be interested in box-sizing: border-box.

    0 讨论(0)
  • 2020-12-04 15:43

    You can use box-sizing css property, it's crossbrowser(ie8+, and all real browsers) and pretty good solution for such cases:

    #childDiv{
       box-sizing: border-box;
       width: 100%; //or any percentage width you want
       padding: 50px;
    }
    

    Fiddle

    0 讨论(0)
  • 2020-12-04 15:44

    In case you want to use that padding space... then here's something:

    http://jsfiddle.net/qD4zd/

    All the colors are background colors.

    0 讨论(0)
  • 2020-12-04 15:45

    You don't even need width: 100% in your child div:

    http://jsfiddle.net/DanielDZC/w2mev/1/

    0 讨论(0)
  • 2020-12-04 15:55

    In your image you've putting the padding outside the child. This is not the case. Padding adds to the width of an element, so if you add padding and give it a width of 100% it will have a width of 100% + padding. In order to what you are wanting you just need to either add padding to the parent div, or add a margin to the inner div. Because divs are block-level elements they will automatically expand to the width of their parent.

    0 讨论(0)
提交回复
热议问题