Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS][HTML] wysokość kolumny - diva na 100% (w odniesieniu do wysokości strony)
czychacz
post 24.06.2010, 11:32:04
Post #1





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


mam problem z dwoma divami - menu lewostronnym i panelem użytkownika. w tej chwili wygląda to tak:

chciałbym, aby lewy i prawy div był rozciągnięty w pionie na wysokość diva środkowego - zawartości strony.
próbowałem: height:100%; i bottom:0; ale nic nie dało.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Lars_18
post 24.06.2010, 11:36:46
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 11
Dołączył: 29.05.2010

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


A w html i body też masz height: 100%? Możesz to zrobić za pomocą display: table-cell; i display: table-row;

Ten post edytował Lars_18 24.06.2010, 11:40:01
Go to the top of the page
+Quote Post
czychacz
post 24.06.2010, 11:39:39
Post #3





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


nie, wysokość body zależy od wysokości diva - kontenera, a wysokość tego kontenera zależy od wysokości nagłówka z tytułem strony i wysokości poniższej zawartości
Go to the top of the page
+Quote Post
cros
post 24.06.2010, 11:45:45
Post #4





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

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


Cytat(Lars_18 @ 24.06.2010, 12:36:46 ) *
A w html i body też masz height: 100%? Możesz to zrobić za pomocą display: table-cell; i display: table-row;

Tak tylko ze table-row, table-cell nie obsluguje IE7.
Jesli cos to albo js, albo <table>.
Do tego jednak najlepsze sa tabele, co by sie o nich nie mowilo, ale w niektorych wypadkach sa poprostu niezastapione i kropka, chyba ze lubisz zasypywac strone dziesiatkami skryptow, do efektu, ktorym mozna latwo i szybko osiagnac tabelka.

Ten post edytował cros 24.06.2010, 11:47:22
Go to the top of the page
+Quote Post
czychacz
post 24.06.2010, 11:50:38
Post #5





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


tabele odpadają. potrzebuję zrobić stronę opartą o divy. łatwiej jest wtedy dostosować cssa do niej.
Go to the top of the page
+Quote Post
cros
post 24.06.2010, 11:53:43
Post #6





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

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


Cytat(czychacz @ 24.06.2010, 12:50:38 ) *
tabele odpadają. potrzebuję zrobić stronę opartą o divy. łatwiej jest wtedy dostosować cssa do niej.

No jak uwazasz, to pozostaje ci oskryptowanie (tylko ze ktos moze miec wyl. js - rzadkosc ale zawsze ryzyko jest), albo display: table, ale jak juz pisalem ie7 i nizej tego nie obsluguja.

PS. Nie twierdzilem, ze masz caly szablon opierac na tabelkach, bo to jest zle, ale pewne elementy mozna zrobic na tabelce.

Wbrew pozorom ie7 (i nizsze) jeszcze zyje i spora libcza uzytkownikow internetu z niej korzysta, wiec osobiscie majac do wyboru rezygnacje z ie7 i zastosowanie table-row, a zrobienie strony hybrydy div + tabele i zachowanie kompatybilnosci z ie, wybieram to drugie.
Przeciez mozesz zrobic komentarze warunkowe i jesli ie <= 7 wtedy dopiero stosujesz tabele, a jak nie to display:table....

Ten post edytował cros 24.06.2010, 12:05:09
Go to the top of the page
+Quote Post
czychacz
post 24.06.2010, 12:04:59
Post #7





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


zmiana display na table-row lub table-cell nic nie pomaga... jakieś inne pomysły bez użycia tabel??
Go to the top of the page
+Quote Post
Kuzry
post 24.06.2010, 12:05:33
Post #8





Grupa: Zarejestrowani
Postów: 28
Pomógł: 4
Dołączył: 30.05.2008

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


Pokaż kod... :]
Go to the top of the page
+Quote Post
sunpietro
post 24.06.2010, 12:13:03
Post #9





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


tu masz rozwiązanie: równa wysokość kolumn CSS
wybierz to, które Ci bardziej pasuje


--------------------
Go to the top of the page
+Quote Post
cros
post 24.06.2010, 12:15:19
Post #10





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

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


Cytat(cros @ 24.06.2010, 12:53:43 ) *
No jak uwazasz, to pozostaje ci oskryptowanie (tylko ze ktos moze miec wyl. js - rzadkosc ale zawsze ryzyko jest), albo display: table, ale jak juz pisalem ie7 i nizej tego nie obsluguja.

PS. Nie twierdzilem, ze masz caly szablon opierac na tabelkach, bo to jest zle, ale pewne elementy mozna zrobic na tabelce.

Wbrew pozorom ie7 (i nizsze) jeszcze zyje i spora libcza uzytkownikow internetu z niej korzysta, wiec osobiscie majac do wyboru rezygnacje z ie7 i zastosowanie table-row, a zrobienie strony hybrydy div + tabele i zachowanie kompatybilnosci z ie, wybieram to drugie.
Przeciez mozesz zrobic komentarze warunkowe i jesli ie <= 7 wtedy dopiero stosujesz tabele, a jak nie to display:table....

No przeciez pisalem JS - nic wiecej nie wymyslisz.

Poza tym poczytaj jak sie buduje pseudo tabele na divach.
Podobnie zreszta jak na <table>
Czyli:
  1. <div class="table">
  2. <div class="tr">
  3. <div class="td"></div>
  4. <div class="td"></div>
  5. </div>
  6. </div>

i css
  1. .table { display: table; }
  2. .tr { display: table-row; }
  3. .td { display: table-cell; }


PS. Jak ktos ci cos radzi to nie sluchasz, a zeby samemu cos pomyslec to nic.
Poczytaj pierw jakies kursy css.
Go to the top of the page
+Quote Post
czychacz
post 24.06.2010, 12:17:07
Post #11





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

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


kod w htmlu:
  1. <div id="page">
  2. <div id="header">Nagłówek strony</div>
  3. <div id="categories">
  4. <span class="catheader">Nagłówek kategorii</span><br>
  5. <ul>
  6. <li><a href=".">Link 1</a></li>
  7. </ul>
  8. </div>
  9. <div id="info">
  10. <span class="catheader">Info panel</span><br>
  11. Info panel
  12. <form action="." method="post">
  13. <p>Login:<br>
  14. <input type="text" name="username" class="resize"><br>
  15. Hasło:<br>
  16. <input type="password" name="password" class="resize"><br>
  17. <input type="submit" value="Zaloguj"></p>
  18. </form>
  19. </div>
  20. <div id="middle">
  21. <div id="content">
  22. a<br>
  23. a<br>
  24. a<br>
  25. a<br>
  26. a<br>
  27. a<br>
  28. a<br>
  29. a<br>
  30. a<br>
  31. a<br>
  32. a<br>
  33. a<br>
  34. a<br>
  35. a<br>
  36. a<br>
  37. a<br>
  38. </div>
  39. <div id="footer">Stopka strony</div>
  40. </div>
  41. </div>

kod css:
Kod
body{margin:0;background-color:rgb(223,223,231);font-size:12px;font-family:sans-serif;}
p{margin:0;padding:0;}
#page{width:960px;margin:0 auto;padding:0;}
#header{width:952px;background-color:rgb(63,63,95);color:rgb(223,223,231);text-align:center;text-transform:uppercase;font-size:300%;font-weight:bold;}
#categories{width:190px;background-color:rgb(63,63,95);color:rgb(223,223,231);float:left;overflow:hidden;clear:left;}
#info{width:160px;background-color:rgb(63,63,95);color:rgb(223,223,231);float:right;overflow:hidden;clear:right;}
#middle{width:594px;padding:0;background-color:rgb(231,231,239);color:rgb(63,63,95);float:left;overflow:hidden;clear:none;}
#footer{color:rgb(127,127,139);border-top:1px dashed rgb(191,191,199);clear:both;text-align:center;font-size:10px;}
div{padding:4px;}
#categories ul{margin:0;padding:0;width:182px;list-style-type:none;}
#categories li a{text-decoration:underline;color:rgb(215,215,223);display:block;width:182px;}
#categories li a:hover{text-decoration:none;}
input{border:1px solid rgb(63,63,95);color:rgb(63,63,95);background-color:rgb(223,223,231);font-size:90%;margin:1px;}
form{margin:0;}
#info input.resize{width:154px;}



//edit:
sunpietro: strona z linka się wczytuje, ale podstrony już nie:/
cros: jeśli chodzi o Twoje rozwiązanie z pseudotabelami - nie pasuje mi dlatego, że jak dla mojego prostego umysłu to to samo, co tabele, tylko użycie dodatkowo cssa

Ten post edytował czychacz 24.06.2010, 12:22:59
Go to the top of the page
+Quote Post
cros
post 24.06.2010, 12:29:49
Post #12





Grupa: Zarejestrowani
Postów: 164
Pomógł: 21
Dołączył: 21.08.2009

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


Cytat(czychacz @ 24.06.2010, 13:17:07 ) *
//edit:
sunpietro: strona z linka się wczytuje, ale podstrony już nie:/
cros: jeśli chodzi o Twoje rozwiązanie z pseudotabelami - nie pasuje mi dlatego, że jak dla mojego prostego umysłu to to samo, co tabele, tylko użycie dodatkowo cssa

Przeciez to nie jest moj pomysl, tylko Lars_18, ktory przeciez sprawdzales (czyt. odpowiadal Tobie), ja ci tylko wytlumaczylem, jak prawidlowo sie tego uzywa.
Poza tym to nie jest to samo co tabele, to sa nadal divy, ktore imituja zachowanie tabel.
Jednak jakbym mial sie z tym bawic, to osobiscie wybral bym te 'normalne' tabel (<table>), z jednej prostej przyczyny - sa obsugiwane przez (chyba) wszystkie przegladarki, a te pseudo niestety nie....mowa tu o twoim przypadku.

PS. Cos mi sie wydaje, ze kolega poprostu naczytal sie zlych rzeczy o tabelach i teraz na sile proboje tego unikac.
W3C nie zabrania korzystania z tabel!!! Tylko trzeba to robic z rozsadkiem, a nie budowac caly layout na nich, a w twoim przypadku akurat uzycie tej jednej tabeli, nie zalicza sie do tego.

Ten post edytował cros 24.06.2010, 12:37:51
Go to the top of the page
+Quote Post
Lars_18
post 24.06.2010, 12:30:15
Post #13





Grupa: Zarejestrowani
Postów: 63
Pomógł: 11
Dołączył: 29.05.2010

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


To nie jest to samo, tabelki są do danych tabelarycznych, a divów można użyć do "układania" elementów na stronie, więc jest bardziej semantyczne.
Inaczej tego nie osiągniesz, bo tylko tabelki zachowują się w sposób jaki chcesz osiągnąć. No chyba że użyjesz JavaScript.

Ten post edytował Lars_18 24.06.2010, 12:31:06
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:04