Witam,
Mam pare problemów z kodem poniżej
CSS
body {text-align: center;}
#container {width: 1004px; border: 1px solid black}
#logo {border: 1px solid black; margin: 6px;}
#statusbar {border: 1px solid black; margin: 6px; padding: 10px;}
#content {border: 1px solid black; margin-top: 3px; float: left; width: 679px;}
#leftbar {border: 1px solid black; margin: 3px; float: left; width: 150px;}
#rightbar {border: 1px solid black; margin: 3px; float: right; width: 150px;}
#disclaimer {border: 1px solid black; margin: 6px; clear:both;}
HTML
<div id = "container">
<div id = "logo"></div>
<div id = "statusbar"></div>
<div id = "leftbar"></div>
<div id = "content"></div>
<div id = "rightbar"></div>
<div id = "disclaimer"></div>
</div>
Otóż, kod jest inaczej interpretowany w IE i Operze.
Powyższy kod działa w IE, natomiast by działał w Operze to trzeba ustawić tak:
CSS
body {text-align: center;}
#container {width: 1004px; border: 1px solid black}
#logo {border: 1px solid black; margin: 6px;}
#statusbar {border: 1px solid black; margin: 6px; padding: 10px;}
#content {border: 1px solid black; margin-top: 6px; float: left; width: 674px;}
#leftbar {border: 1px solid black; margin: 6px; float: left; width: 150px;}
#rightbar {border: 1px solid black; margin: 6px; float: right; width: 150px;}
#disclaimer {border: 1px solid black; margin: 6px; clear:both;}
Zdziwiło mnie to, że gdy zastosuje float dla diva to IE powiększa dwukrotnie margin, dlatego zamiast 6px jest 3px. Czy jest szansa na naprawienie tego problemu, bez używania dyrektyw if IE?
Druga sprawa to, gdy chce wyodrębnić stopke "disclaimer" z kontenera "containter" tak, by ta nie była objęta obramowaniem kontenera to znów dzieja sie dziwne cyrki w Operze.
Kod poniżej:
<div id = "container">
<div id = "logo"></div>
<div id = "statusbar"></div>
<div id = "leftbar"></div>
<div id = "content"></div>
<div id = "rightbar"></div>
</div>
<div id = "disclaimer">All Rights Reserved</div>
Powoduje to zacieśnienie obramowania kontenera do divów "logo" i "statusbar". Nie obejmuje divów leftbar, content i rightbar niestety. W IE jest normalnie pod tym względem.
Moge to obejść po prostu dając byle jaki element za divem "content", ale to jest nie profesjonalne rozwiązanie, gdy takiego elementu nie chce dać.
Szczerze to już nie mam siły do tej różnorodnośći interpretacji kodu przez przeglądarki. Raz IE denerwuje, raz Opera.