Welcome to WebmasterWorld Guest from 35.172.195.49

Forum Moderators: not2easy

Message Too Old, No Replies

problem with div set to 100% with padding

     
12:57 am on Jan 7, 2010 (gmt 0)

Preferred Member

10+ Year Member

joined:Apr 29, 2003
posts:424
votes: 0


I have run into this problem often but I just can remember the workaround for it.
I have a div set to 100% inside another div of fixed width. I then have padding of 40px on each side of the div but this makes the inter div break out of the container div by 80px;
12:37 pm on Jan 7, 2010 (gmt 0)

Senior Member from GB 

WebmasterWorld Senior Member 10+ Year Member

joined:Oct 4, 2002
posts:2204
votes: 0


What browser Sarah?

Sounds like the IE box model issue - with widths + padding. IE renders them incorrectly. Either apply padding to another container, or use conditionals.

Got a HTML/CSS snippet we can see?

1:56 pm on Jan 7, 2010 (gmt 0)

Preferred Member

10+ Year Member

joined:Apr 29, 2003
posts:424
votes: 0


actually it's firefox.
I got it working by putting it in a container So then I end up with 3 nested divs first has like a width of 500px; second has a width of 100% and the third has the padding of 40px;
i though it was similar to the box model problem too with firefox?
2:58 pm on Jan 7, 2010 (gmt 0)

Full Member

10+ Year Member

joined:Mar 3, 2009
posts: 227
votes: 0


Unless the div has a display of block, the div will automatically have a 100% width (stretch to the limits of its container). So all you really need is a fixed width div and an internal div with the padding (don't declare a width). No need for the third container div. Unless I am missing something?

Note: Firefox will add the width of a div plus its padding. So if you have a 500px div with a padding of 40px on the left and right, Your div will more than likely be 580px.

7:16 pm on Jan 7, 2010 (gmt 0)

Senior Member

WebmasterWorld Senior Member swa66 is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Aug 7, 2003
posts:4783
votes: 0


The width you set is always the width of the content. The padding, border and margins always go around that.

Legacy IE versions sometimes do it wrong, best to ignore them and not design anything while looking at it with IE.

Just not assigning 100% width would give the effect you seek as blocks take up all the available width in their parent by default.

7:29 pm on Jan 7, 2010 (gmt 0)

Full Member

10+ Year Member

joined:Mar 3, 2009
posts: 227
votes: 0


Every Single Time!
1:57 am on Jan 8, 2010 (gmt 0)

Junior Member

10+ Year Member

joined:May 26, 2009
posts: 107
votes: 0


Just not assigning 100% width would give the effect you seek as blocks take up all the available width in their parent by default.

This will only happen if the block is in the normal flow. In any other situation, the box's computed width will change based on the shrink-to-fit algorithm.

FYI, the CSS3-UI module includes the 'box-sizing' property which gives the browser the ability to alter the box model, so that any 'padding' and/or 'border' values are computed _inside_ of a specified width.