I try to avoid Internet Explorer 7, or IE7 for short, but I can’t any more. Today was the first time I really had to debug in IE7 and I discovered a pretty irritating bug.
What I wanted to do was put a h2 inside of a div and adjust the margin-top so that it was hanging over the top edge of the div. Imagine a fieldset with a legend.
My code and style sheet were something like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <style type="text/css">
div {
border:1px dashed black;
background-image:url(../images/sect_bg.png);
padding:10px;
margin-bottom:25px;
clear:both;
}
h2 {
display:block;
width:100%;
height:53px;
background-repeat:no-repeat;
background-position:center center;
margin-top:-33px !important;
text-align:center;
background-image:url(../images/blog_title.png);
}
h2 span {
position:absolute;
margin-left:-9999px;
}
</style>
<div>
<h2><span>Heading</span></h2>
<p>Some Text</p>
</div> |
In IE7, nothing happened. In every other browser, the heading moved up. I started playing with the style sheet, removing parts. It turns out that the height and width were the problem. This applied not only to my image replacement, but a plain-old div-with-a-heading-in-it. The fix for my problem was to create a separate IE7 style sheet with the following:
1 2 3 4 5 | h2{ width:auto; height:auto; padding-top:53px; } |
I was also informed today that my Internet Explorer 6 Virtual PC image had expired. As promised, Microsoft has released a new Virtual PC image. While it’s nice to be able to check against Internet Explorer 6, this refresh cycle
isn’t very convenient.