Bill Sullivan
asked on
Absolute Position in Firefox Not Correct
Hi all:
I am a newbe to CSS, and am trying to follow along in a "Dummies" book trying to learn. I wrote the following simple code to make two divisions on my browser. It works correctly in IE7 on the Windows side of my Mac (via Parralels) - the graphic is positioned relatively and there is a 10px gap between the sidebar and the maintext divs. However, the maintext does not separate by 10px, nor is the graphic "relative" to the maintext on Firefox using the OSX side of my mac.
I've attached a picture of my browser window using Firefox.
Any ideas?
I am a newbe to CSS, and am trying to follow along in a "Dummies" book trying to learn. I wrote the following simple code to make two divisions on my browser. It works correctly in IE7 on the Windows side of my Mac (via Parralels) - the graphic is positioned relatively and there is a 10px gap between the sidebar and the maintext divs. However, the maintext does not separate by 10px, nor is the graphic "relative" to the maintext on Firefox using the OSX side of my mac.
I've attached a picture of my browser window using Firefox.
Any ideas?
<html>
<head>
<style >
div.sidebar {position: absolute; background-color: cornflowerblue; top: 0; left: 0; width: 100px; height: 75%; padding-left: 6px; padding-right: 4px; padding-top: 6px; font-size: 16pt;}
div.maintext {position: absolute; background-color: darkkhaki; top: 0; left: 110px; height: 75%;
width: 75%;}
img.relative {position: relative; left = 35%; top = 20%}
</style>
</head>
<body>
<div class="sidebar"> HERE is a sidebar. You can fill it with links, text, whatever... </div>
<div class="maintext">
<IMG class="relative" height="351" width="300" src="giantapple.png">
</div>
</body>
</html>
Picture-1.png
ASKER
By the way, I just downloaded Firefox for Windows to my Windows side and tried to display the page. It looks the same as the Firefox on my Mac. So this seems to be a problem with Firefox as opposed to a problem with the operating systems.
Your code has errors. Apparently IE guessed correctly what you meant, but how can you expect Firefox to guess the same thing?
You used the "=" sign instead of the ":" in this rule:
img.relative {position: relative; left = 35%; top = 20%}
change it to
img.relative {position: relative; left: 35%; top: 20%}
Also your document lacks a doctype, so IE7 will render it in quirks mode, which is not a good thing.
http://dev.opera.com/articles/view/14-choosing-the-right-doctype-for-your/
You used the "=" sign instead of the ":" in this rule:
img.relative {position: relative; left = 35%; top = 20%}
change it to
img.relative {position: relative; left: 35%; top: 20%}
Also your document lacks a doctype, so IE7 will render it in quirks mode, which is not a good thing.
http://dev.opera.com/articles/view/14-choosing-the-right-doctype-for-your/
ASKER
Thanks Kravimir. That fixed the relative positioning of the graphic. I also added a doctype, However, it is still not positioning the maintext 110px from the left, and as you can see from the picture, it is not filling 75% of the screen with the maintext like it does with the sidebar (they are not even on the bottom like they are in IE7. Any thoughts on this?
> it is still not positioning the maintext 110px from the left
Please post your updated code.
> it is not filling 75% of the screen with the maintext like it does with the sidebar (they are not even on the bottom like they are in IE7.
Their bottoms won't be even because you put some top padding on one but not the other.
I recommend you read up on how the box models work: http://www.dynamicsitesolutions.com/css/box-models/
Please post your updated code.
> it is not filling 75% of the screen with the maintext like it does with the sidebar (they are not even on the bottom like they are in IE7.
Their bottoms won't be even because you put some top padding on one but not the other.
I recommend you read up on how the box models work: http://www.dynamicsitesolutions.com/css/box-models/
div.maintext {position: absolute; background-color: darkkhaki; top: 0; left: 110px; height: 75%;
try this --
div.maintext {position: absolute; top: 0px; left: 110px; height: 75%; background-color: darkkhaki; }
try this --
div.maintext {position: absolute; top: 0px; left: 110px; height: 75%; background-color: darkkhaki; }
ASKER
Thanks Kravimir, by adding padding to the maintext, the bottoms now line up. However, the maintext is still not aligned 110px from the left, but rather right up against the sidebar @ 100px. I've attached the code as it stands now, as well as a screen shot of the page in Firefox.
scrathcyboy: your revised line did not help the solution. Sorry.
scrathcyboy: your revised line did not help the solution. Sorry.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<style >
div.sidebar {position: absolute; background-color: cornflowerblue; top: 0; left: 0; width: 100px; height: 75%; padding-left: 6px; padding-right: 4px; padding-top: 6px; font-size: 16pt;}
div.maintext {position: absolute; background-color: darkkhaki; top: 0; left: 110px; height: 75%;
width: 75%; padding-left: 6px; padding right: 4px; padding-top: 6px;}
img.relative {position: relative; left : 35%; top : 20%}
</style>
</head>
<body>
<div class="sidebar"> HERE is a sidebar. You can fill it with links, text, whatever... </div>
<div class="maintext">
<IMG class="relative" height="351" width="300" src="giantapple.png">
</div>
</body>
</html>
Picture-3.png
ASKER
The problem seems to be associated with the "padding-right" command for the sidebar. If I take that command away, the 5px space between the two columns shows up. Interesting how IE7 appears to reduce the field with the padding command, where Firefox, Safari and Opera all seem to add the padding to the field size (in Firefox, Safari and Opera, the padding command appears to increase the size of the column rather than reduce the usable space within the fixed column width).
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Picture-2.png