ie8 makes header disappear - css

My website gets completely messed up in < ie8. Specifically my header just disappears, any ideas?
header{
width: 100%;
height: 140px;
background: #FFFFFF;
margin: 0px;
float: left;
}
h1{
color: #FFFFFF;
font-family: Garamond,Baskerville,"Baskerville Old Face","Hoefler Text","Times New Roman",serif
}
.headerInner{
width: 96%;
height: 88%;
background: #00AA4F;
margin: 10px 2%;
text-align: center;
}

IE8 and older versions don't support HTML5, so it doesn't know about the existence of a header element, therefore it doesn't render it. You can use a div instead of the header element or you can add this script here, which adds HTML5 support for IE8: https://github.com/afarkas/html5shiv. But for IE7 and older I don't think it will help you. I you need to support IE7 and older don't use HTML5 elements.

Related

DIV tags behaving strangely

My private webpage's main content is not displaying strangely within Firefox. The header and footer bar both display and the main text is placed adjacent to them towards the right. Occasionally, the footer also moves above the main text. I'm guessing this is all one issue involving the positioning of DIVs that I'm somehow missing. [This has been solved]
The height of two DIVs that are equally as tall when displayed in Chrome is also different. This issue also occurs in Safari but in a different way. There is a 1 px gap between the logo and the navbar that isn't present when viewed in Chrome or Firefox. Can anyone think of a way to reset all of the browser defaults to prevent similar things from happening in the future?
The website is currently not online yet and I'm debugging it for final release. (I don't really want to release this in the current condition as it will frustrate anyone who doesn't use a webkit browser.)
Also, as a side note, anyone know how to fix the CSS errors I'm getting in Internet Explorer 9? The gradient in the nav bar is gone, some areas have missing background color, and all picture links have annoying boxes around them.
EDIT: I saw in an online CSS gradient generator what I need to do to make the gradients work in IE9. The background issue apparently stems from the same source.
Also, is anyone in Opera experiencing issues with the latest debug version at http://jsbin.com/ipixay/1? (Credit for this one goes to Sunyatasattva.)
The link to the fiddle (where the code is posted at) is: http://jsfiddle.net/aaQSD/7/ Please forgive me for the amount of CSS that's still there, but I can't tell which causes the Internet Explorer 9 problems.
My best guess is that the Firefox problem lies somewhere in this section of CSS:
body {
margin: 0;
padding: 0;
text-align: center;
font-family: Times;
background: #efefef url(pics/background.png) repeat top center;
}
#container {
overflow:auto;
width: 95%;
min-height: 100%;
min-width: 946px;
margin: 0 auto 10px auto;
}
#content-wrapper {
width: 100%;
float: right;
text-align: left;
margin: 10px 0 0 0;
}
#content-inner {
padding: 0 15px 0 15px;
}
.center-slide {
font: normal 62.5%/1.5 Times;
letter-spacing: 0;
width: 900px;
height: 485px;
position: relative;
padding: 20px 0 0 0;
margin: 0 auto 0 auto;
background-color: #FFFFFF;
border-radius: 8px;
}
.boxes {
margin: 0 auto 0 auto;
width: 900px;
}
.left-box {
float: left;
background-color: #FFFFFF;
border-radius: 8px;
margin: 10px 5px 0 0;
padding: 20px;
width: 500px;
position: relative;
}
.logo {
width: 26%;
text-align: center;
float: left;
font-family: Times;
font-size: 65px;
font-weight: bold;
color: #FFFFFF;
padding: 10px 0 0 0;
background-image: -moz-linear-gradient(0% 22px 90deg, #0B3474, #517ABA);
background-image: -webkit-gradient(linear, 0% 0%, 0% 70%, from(#517ABA), to(#0B3474));
}
header {
width: 100%;
min-width: 863px;
background-color: #000047;
float: left;
padding: 10px;
color: #FFFFFF;
text-align: left;
font-size: 20px;
overflow: hidden;
margin: 0 0 10px 0;
}
nav {
background-color: #6a6a6a;
font: 16px Times;
min-width: 700px;
float: right;
width: 74%;
}
footer {
font-family: Times;
text-align: center;
background-color: #000047;
color: #FFFFFF;
text-align: center;
padding: 10px 0;
width: 100%;
min-width: 863px;
}
Here is the list of things that have been fixed:
Unwanted boxes/borders around picture
Firefox display issue
Glitchy footer
EDIT: I'm currently working on making a fiddle with the minimal code to replicate the issue as suggested in the comments. I hope you can forgive me for my noobish mistake. Thanks, everyone who have responded so far!
EDIT 2: The fiddle is out! I've removed the pandora's box of code that used to be below.
The header and footer are displayed adjacent to the main container
Is there a reason why they are floated? Removing the float: left rule from the header, makes the container stack below it. If they need to be floated for some reason I am not seeing, perhaps you should consider adding a clear?
Logo height different from navbar element heights
This piece baffled me a bit: I think the culprit is browser default line-height property, which, on Chrome, is coincidentally making your elements align.
Your nav elements have a set line-height of 61, plus a vertical padding of 12 on both sides, adding up to 85px. Your logo has no defined line-height and a font-size of 65px plus a padding-top of 10px. In Firefox this is 10px short.
To fix this, just set the line-height to your logo element as well.
Here is a working JSBin of your code:
Working example
Internet explorer problems:
Missing gradient
Missing background
Annoying border
I don't have IE9 at hand right now, so I might look into it later if you need it, but here are my guesses.
As for the missing gradient, your CSS specifies only webkit and mozilla vendor prefixes. You might want to take a look at the -ms– prefix as well, and check which rules really need it and which don't.
I am skipping the missing background part because it's quite vague and I am not testing on IE right now.
As for the border around linked images, you could perhaps add this rule to your CSS:
a img {
border: 0;
outline: 0;
}
EDIT:
Safari annoying one pixel gap
As for the Safari annoying one pixel gap, it apparently comes from the fact that Safari doesn't calculate well your float: left + width: 26% plus float: right + width: 74%. Adding a .1% to the first element width fixes the problem, but it is not the most elegant solution.
The best solution for your problem at hand is to just float both your elements left. You can see an updated fiddle working in Safari:
Working example
I have edited your fiddle for it to work. I essentially just added float: left; to your #container. You can look at my edits for further details. http://jsfiddle.net/aaQSD/8/

Why would Firefox be handling CSS padding differently from Safari or Chrome?

I have a little div with a number inside of it.
Firefox displays it differently from Safari or Chrome.
Here is what Safari displays:
And here is what Firefox displays:
The CSS is this:
background: red;
height: 20px;
width: 20px;
float: left;
margin: 7px;
padding-top: 0px;
color: white;
text-align: center;
Why is this happening? What can I do to prevent it?
Thanks a lot in advance.
Explicitly set the line height and the margins of the text itself.

IE6/7 bug: there are empty space without any logical reason

This is really strange (well, like many IE bugs lol). The page is here. Everything is fine with all modern browsers, but there is an empty space between footer and the bottom of the page on IE6 and IE7. Just can't imagine what is the reason. I am using IE7.js hack, but doesn't help here.
The screenshots: IE6 and IE7.
CSS for footer:
#footer {
background: url("images/footer_bg.png") repeat scroll 0 0 transparent;
clear: both;
color: #FFFFFF;
float: left;
font-family: 'Special Elite',arial,serif;
font-size: 13px;
line-height: 85px;
margin-top: 90px;
min-height: 85px;
text-align: center;
width: 100%;
}
Any suggestions are appreciated!
remove the float:left from the footer,
then that makes other browsers "collapse" the top margin of the #footer, so if you also add overflow: hidden to the #wrapper it should make them even..
re:bug : the widths for IE6/7 are triggering hasLayout and instead of avoiding that, the overflow on the wrapper makes everyone the same
at least I hope ;)

Firefox css float bug with a:link not in IE or Chrome

My default page works fine in ie but Firefox it has problems with the a:link.
At my page http://www.printer-ink-toner.co.uk and half way down is a link to my status on ebay.
For Firefox this link does not work and for ie it does. I can reproduce this behavior on my development PC also.
The link is contained in a float div block called "centercol50pct" which has CSS of
.centercol50pct {
position: relative;
float: left;
width: 380px;
margin:0px 5px 0px 0px;
}
If the float:left; is removed it works fine. changing any other parameter does not have an effect on the problem.
In addition the search drop downs do not work in Firefox either. I assume it is related but thought I would try and solve the more simple 'a link' problem first
Thanks
Nigel
The centrecolLowerblock div was covering up the above content, therefore making the link unreachable.
Change
#centrecolLowerblock {
position: relative;
top: 20px;
}
to
#centrecolLowerblock {
clear: both;
position: relative;
top: 20px;
}
Also your dropdowns are not working due to the same problem (an element is overlapping them). Try changing.
h3.h3_Largeblue {
color: blue;
font-size: 20px;
}
to
h3.h3_Largeblue {
clear: both;
color: blue;
font-size: 20px;
}
That should sort the problem's :)

Why is hasLayout always -1?

I'm setting zoom:1; on some elements. When I subsequently check the CSS using the developer tools in IE 6.0.29, I see that zoom:100% is there, but hasLayout is still -1. Why isn't hasLayout being forced?
.album_thumbnail_outer_container {
position: relative;
height: 200px;
width: 150px;
border: solid black 1px;
float:left;
color: #628FDB;
font-weight: bold;
margin: 20px;
background: #262626;
text-align: center;
*zoom:1;
}
Here's a screenshot of the properties:
http://www.zumodrive.com/share/COhNDQ2OT
Setting position relative can work but can also have other consequences so make sure you're aware of that. Also, only block elements can have layout so if you're trying this on an inline element it's not going to work.

Resources