(*This isn't really an error - it's technically the correct behaviour, but not what a programmer would expect.)
To illustrate - here's a page with multiple divs, with margin-top:0px specifically assigned for the divs.
The page looks like this : [link to page]
|  | 
| The margin-top problem | 
It should actually look like this : [link to page]
|  | 
| Solved margin-top | 
Here's an example of the CSS used:
body {
 margin:0;padding:0;text-align:center;background:#222;
 font-family:"Times New Roman", Times, serif;font-size:16px;
}
#box1,.other {
 width:1000px;
 margin:0px auto;
 background:#EEE;
 border-bottom:2px red solid;
}
#box1 {
 height:270px;
 margin-top:0px;
}
.other {
 height:150px;
 margin-top:0px!important;/*makes no difference*/
}
And some of the HTML :
<div id="box1"> <h1>This h1 tag should have a margin-top. Instead, the div gets it.</h1> </div> <div class="other"> <p style="margin-top:50px;">Text in a styled p tag with a margin-top : again, the parent div takes it.</p> </div>
To solve this problem, just add a padding-top:1px or a border - any padding or border affecting the top of the parent element will resolve the issue.
As you can see, chrome has this problem. I have tested it on FF, Opera and IE8 with the exact same results.
 
1 comment:
Simple but very often useful. Thanks
Post a Comment