Pozycjonowanie DIV'ów i style CSS


(Robert083) #1

Witam wszystkich :smiley:

Do zilustrowania problemu posłużę się przykładowym kodem:

HTML:

[/code] CSS:
[code]

Efekt w FF oraz Operze jest taki, a w IE taki.

No i teraz moje pytanie. Pomimo tego, że DIV z id=”obszar1” ma lewy margines ustawiony na 10px (margin-left: 10px), to w IE margines ten wynosi jakieś 20px. Dlaczego? Co trzeba zrobić aby we wszystkich przeglądarkach margines był taki sam?

Będę bardzo wdzięczy za pomoc :smiley:


(Czarno to widzę...) #2

Może to wina automatycznego ustawienia lewego marginesu całości?

IE nie jest zgodny ze standardami i ma problemy z CSS-em. Być może konieczne będzie zastosowanie obejść.


(Robert083) #3

Nie jest to wina automatycznego ustawiania marginesów, sprawdzałem kilka razy wpisując różne wartości – nadal to samo.

margin-left: auto oraz margin-right: auto odpowiada w tym przypadku za wyśrodkowanie obszaru „calosc” względem strony. Nie powinno mieć to wpływu na wewnętrzne zachowanie się tego obszaru. Jak widać marginesy wewnętrzne (padding) też są ustawione na 0. Nie wiem co jeszcze może być przyczyną tego zachowania. Co ciekawe, jeśli ustalę lewy margines obszaru „calosc” na 10px względem krawędzi strony to wszystko jest OK (czyli jest on oddalony o 10px od krawędzi, a nie o np. 20px).

Jeśli ktoś wpadnie jeszcze na jakiś pomysł, to niech napisze.

PS. Czarno to widzę… , dzięki za linka.


(Czarno to widzę...) #4

No to masz to.


(Robert083) #5

Czarno to widzę… , nie do końca mnie zrozumiałeś.

To ja może linka zapodam - click here.

Problem tkwi w tym, że nie mogę DIV’a, któremu nadałem id=”obszar1” ustawić 10px od obszaru „calosc”. Ja wiem, że IE nie jest zgodny ze standardami. Ale jak na załączonym linku widać:

  1. odległość DIV’a „calosc” od lewej krawędzi strony ustawiłem teraz na 10px – i jest OK.

  2. odległość DIV’a „obszar1” od lewej krawędzi DIV’a „calosc” ustawiłem na 10px – i to jest problem, bo margines jest większy (co zresztą widać).

  3. odległość DIV’a „obszar2” od prawej krawędzi DIV’a „obszar1” ustawiłem na 10px – i tu znów wszystko jest OK.

No i właśnie dziwi mnie ta wybiórczość w wyświetlaniu, raz (a nawet 2 razy :P) jest poprawnie, a raz nie. Gdyby IE wcale nie interpretował ustawiania marginesów w ten sposób, to wszędzie by było źle. A błąd jest tylko w jednym miejscu.