Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [css] wysokosc div'a
kufalo
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. </head>
  5. <body>
  6. <div style="width:200px;border:1px solid red">
  7. <div style="min-height:200px">
  8. <div style="margin:10px">text</div>
  9. </div>
  10. </div>
  11. </body>
  12. </html>


Mam dziwny problem z wysokoscia bialego pola wewnatrz czerwonej ramki.
Wydaje mi sie, ze powinien miec 200px, ale na roznych przegladarkach ma 210 lub 220.
Winowacja jest wewnetrzny margin, ale nie bardzo rozumiem dlaczego daje on taki dziwny skutek...?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ale o co Ci chodzi dokładnie? bo ja nie wiem w czym problem.

zrobiłem sobie tak:
  1. <div style="width:200px; border:1px solid red;">
  2. <div style="min-height:200px; background-color: blue;">
  3. <div style="margin:10px;background-color: yellow;">text</div>
  4. </div>
  5. </div>


i wyświetla mi się tak:

(IMG:http://img84.imageshack.us/img84/5645/76087078.th.jpg)
Go to the top of the page
+Quote Post
kufalo
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 2
Dołączył: 24.08.2005

Ostrzeżenie: (0%)
-----


Teraz juz wiem, ze chodzi o ten bialy pasek nad niebieskim polem.
Skad on sie bierze, skoro niebeskie tlo ustawione jest w divie nadrzednym?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




daj tak i po sprawie:

  1. <div style="width: 200px; border: 1px solid red;">
  2. <div style="min-height: 200px; background-color: blue; overflow: hidden;">
  3. <div style="margin: 10px; background-color: yellow;">text</div>
  4. </div>
  5. </div>


bierze się to z tak zwanego biegu dokumentu (flow) nie umiem tego wyjaśnić na Kusry Browsehappy::FLOW masz wyjaśnione.
Go to the top of the page
+Quote Post
Jellyeater
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 26.04.2009

Ostrzeżenie: (0%)
-----


Cytat
Winowacja jest wewnetrzny margin, ale nie bardzo rozumiem dlaczego daje on taki dziwny skutek...?

To wina tego, że IE liczy marginesy i paddingi do wewnątrz (odejmuje od szerokości podanej, marginesy i paddingi i otrzymuje długość pola dla textu). Reszta przeglądarek robi to jak W3C przykazał czyli na opak. Podajesz szerokość kolumny, a do tego dodawane są marginy i paddingi.
Go to the top of the page
+Quote Post
pawkow
post
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 7
Dołączył: 30.09.2006

Ostrzeżenie: (0%)
-----


Ewentualnie po prostu:

Kod
<div style="width:200px; border:1px solid red;">
<div style="min-height:200px; background-color: blue; padding: 10px;">
<div style="background-color: yellow;">text</div>
</div>
</div>
Go to the top of the page
+Quote Post
Zajec
post
Post #7





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Cytat(Jellyeater @ 26.04.2009, 13:53:03 ) *
To wina tego, że IE liczy marginesy i paddingi do wewnątrz (odejmuje od szerokości podanej, marginesy i paddingi i otrzymuje długość pola dla textu). Reszta przeglądarek robi to jak W3C przykazał czyli na opak. Podajesz szerokość kolumny, a do tego dodawane są marginy i paddingi.
Nie w tym wypadku. Wystarczy w pierwszej lini kodu (X)HTML użyć doctype typu strict i IE normalnieje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Lista DTD: http://www.w3.org/QA/2002/04/valid-dtd-list.html . W przykładzie masz prawidłowy DOCTYPE więc to ten błąd.

Uwaga: nie należy używać <?xml jako pierwszej lini. Od razu ta z DOCTYPE.


Już wiem na co nadział się kufalo. Marginesy są dosyć zakręcone, zdradliwe. Czasem element dziecka jest "zabierany" przez rodzica i wtedy rodzic ma większy rozmiar niż być się spodziewał. U Ciebie własnie to się stało: tej nabardziej zagnieżdzony div normalnie nie wpłynąłby nawet ze swoim marginesem na rozmiar rodzica. Ale gdy rodzic (ten środkowy div) zabiera sobie margines dziecka, to już wtedy ziększa swoją wysokość.

Możesz faktycznie użyć paddingu, tutaj już nie ma takich niespodzianek.

Ten post edytował Zajec 13.05.2009, 22:56:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 23:32