Opera doesn't support height: 100% !!
EvilDave UK
Status: New User - Welcome
Joined: 23 Oct 2005
Posts: 2
Location: Cheshire, UK
Reply Quote
Could Opera be the only browser in the world that doesn't know what "height: 100%" means?

I've done the following:

:: Code ::
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- TemplateBeginEditable name="doctitle" -->
<title><? echo "$str[title]"; ?></title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
<link href="/styles/Global.css" rel="stylesheet" type="text/css">
<link href="/styles/AllModules.css" rel="stylesheet" type="text/css">
<link rel="icon" href="/images/favicon.ico" type="image/png">
</head>
<body>

<div align="center">
  <table border="0" cellpadding="0" cellspacing="0" class="Root">


CSS:

:: Code ::
body {
   background-color: #999999;
   margin: 0px;
   padding: 0px;
   background-image: url(/images/back.jpg);
   background-repeat: repeat;
   background-position: left top;
}
.Root {
   height: 100%;
   width: 940px;
}


Basically, the table with class "Root" should stretch the whole page. In IE, FF, Safari and Netscape it does just that. In Opera it doesn't. I've been trying to fix this problem inserting height tags into the CSS in multiple places, which doesn't appear to have any extra effect in the working browsers nor Opera. I'm now considering blocking Opera browsers using the PHP detection script you have on the main page.

Can anyone help?

Finally, can anyone help me with the PHP detection script please? I simply want to either block Opera or redirect all Opera users to another page saying "unsupported browser" or something similar.

Thanks in advance.
Back to top
jeffd
Status: Assistant
Joined: 04 Oct 2003
Posts: 594
Reply Quote
Evildave, it's actually much worse than you think, something in Opera's > 8.0 broke the 'height' feature when you use % based heights.

For instance, the home page of this website worked fine with Opera 7, 7.5, 8.0, but then broke in Opera 8.02, it's still broken in Opera 8.5, I haven't checked the 9.0 release yet to see if that bug is fixed.

I've cleaned out the code in that case to create a simplified test case, and Opera will simply not handle heights relative to containers in %'s, I don't know why, what the problem is, and it doesn't matter if you declare the height overall in html, body, or the containing div itself.

Technically however, tables do not I believe have heights if done strictly to the specs from the W3C although most browsers will let you declare a height on them anyway.

In the past, Opera was actually the only browser that would allow non-expanding heights to be applied to tables now that I think of it, all the others would expand past that height to match the content.

In terms of the browser detection, you want to pinpoint which exact Opera is causing the issue, it's almost certainly not < 8.02, 7x, and it may not be 9x, something happened right here in the 8x series that messed up, I was going to post on the Opera forums to see what this bug is, but I'm sick of fixing Opera only bugs, I've been doing it for years and it's simply getting old.

<added>I just downloaded Opera 9 technology preview, same problem. I'm going to have to waste some of my life debugging a browser isssue that only 0.2% of average USA based websites will ever have, since that's the current, and 5 year, average for Opera, on non tech sites. Tech users are as far as I know, the only Opera users in the United States, this site gets for example about 4% opera, 4% safari/konqueror, then between 40-50% for each, MSIE and Firefox, the IE and Firefox exact proportions vary month to month, neither dips below 40% on average, but the Konqueror/Safari and Opera are always the same, and this site attracts a very high percentage of Opera users compared to a normal site.
Back to top
EvilDave UK
Status: New User - Welcome
Joined: 23 Oct 2005
Posts: 2
Location: Cheshire, UK
Reply Quote
Hey jeffd. I've spent countless numbers of hours trying to working out how to fix this problem, but I can't. So, I've blocked the browser for now until it is fixed.

Thanks for your time.
Back to top
jeffd
Status: Assistant
Joined: 04 Oct 2003
Posts: 594
Reply Quote
We spent hundreds of hours developing a css template that would work on ALL modern browsers, it's worked on ALL modern browsers since 2000, now, in mid 2005, OPERA decides to change something in how it handles heights. They are the ONLY browser in the world that currently handles heights in this way. I cannot figure out what they are doing, as I noted, THEY ARE THE ONLY F*CKING BROWSER ON THE PLANET that handle heights in this way, and this started not even with 8.0, but with 8.02.

This template even sort of works with MSIE 4 windows. It's ridiculous. But not on Opera > 8.01. I wish I knew what 'bug fix' destroyed this basic css height support, if I cared enough to research it, I would, but I don't care enough, I'd be happy if someone else did though, my years of supporting browsers I don't really like that have low market share are coming to a close.

I do not like Opera browser, period, I'm completely sick of this kind of junk, I stopped developing for opera commercially a few years ago, no client will pay for that.

Personally, we don't block it, we just give them a one time per visit js popup alert that tells them that the errors they see are not our fault. One of these days we might try to figure out what the exact issue is, and just why it is that Opera has decided to ignore %based heights inside of % based height elements when they've handled it fine for years, but I frankly could almost care less, except I like stuff to work as a rule, but that's just taking pride in worksmanship.

It's not even worth redirecting, just give the users the distorted page.
Back to top
Display posts from previous:   

All times are GMT - 8 Hours