Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XHTML]Automatyczne rozciąganie diva.
DonJeday
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Witam,

Mam główny div w którym jest kolejny div. I teraz chccę żeby wysokośc głównego diva wzrastała wraz z wysokością diva który jest w nim, jak to zrobić? Jak usune z niego height to robi się bardzo krótki i div w nim wystaje za niego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Maxik
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


height: 100% na diva nadrzędnego, możesz tez nadać min-height: 500px;
Go to the top of the page
+Quote Post
DonJeday
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Dalej wewnętrzny div wychodzi za główny i przy 100% dalej jest króciutki.

  1. div#glowny {
  2. background-color: #FFFFFF;
  3. border: 1px solid #BABCC2;
  4. width: 680px;
  5. height: 100%;
  6. margin: auto;
  7. padding: 20px;
  8. }


Ten post edytował DonJeday 24.10.2008, 22:44:35
Go to the top of the page
+Quote Post
Chrom
post
Post #4





Grupa: Zarejestrowani
Postów: 240
Pomógł: 17
Dołączył: 28.12.2005
Skąd: Warszawa

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


może skorzystaj z overflow, hidden ukryje nadmiar a visible pokaże całość
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #5





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


dla internet explorer'a (przepraszam za wyrażenie) "height" oznacza tak naprawdę minimalną wysokość. Natomiast dla przeglądarek internetowych oznacza po prostu wysokość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Więc jeżeli chcesz, aby Ci się skalowała wysokość pod wszystkimi przeglądarkami, to musisz zrobić taki myk:

  1. div#glowny {
  2. height: auto !important;
  3. height: 20px;
  4. min-height: 20px;
  5. }


Pierwsza linijka każe np Firefox'owi ustawić automatyczną wysokość i jednocześnie zignorować drugą linijkę.
Druga linijka ustawia wysokość (czyli minimalną wysokość dla ie) na 20px.
Trzecia (niezrozumiała dla ie6) ustawia minimalną wysokość dla tych przeglądarek, które znają coś takiego jak min-height.
Czyli Fx, Opera i ie7 odczytaja 1szą i 3cią linijkę, ie6 odczyta tylko drugą. W ten sposób otrzymasz minimalna wysokość pod wszystkimi przeglądarkami. Nie potrzeba tu overflow'ów jeśli div'y wewnątrz głównego nie będą float'owane.

Jeżeli chcesz inną minimalną wysokość, to pamiętaj o jej zmianie w obydwóch linijkach.
I taka kolejność definiowana jak napisałem jest niezbędna żeby działało.

pozdrawiam
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Dalej nie rozwiązaliście problemu skalowania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. function allocateSidebarHeight()
  2. {
  3. var contentDom = document.getElementById("rightcolumn");
  4. var sidebarDom = document.getElementById("leftcolumn");
  5.  
  6. if(contentDom.offsetHeight > sidebarDom.offsetHeight)
  7. {
  8. sidebarDom.style.height = (contentDom.offsetHeight)+"px";
  9. }
  10. else if(sidebarDom.offsetHeight > contentDom.offsetHeight)
  11. {
  12. contentDom.style.height = (sidebarDom.offsetHeight)+"px";
  13. }
  14. }
  15.  
  16. window.onload=allocateSidebarHeight;


Do dla divów umieszczonych obok siebie , ale doskonale zadziała przy skalowaniu diva wewnątrz diva. Znacie inny sposób?

Pozdrawiam.
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #7





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


nikt mi nie wmówi, że js jest potrzebny do tak banalnego problemu jakim jest skalowanie diva w pionie.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #8





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Ok, to ustaw mi dwa divy obok siebie w taki sposób, aby oba miały tą samą wysokość niezależnie od ilości treści w dowolnym z nich. Naprawdę nie kpię, tylko zupełnie poważnie mówię - ja nie umiem.

Pozdrawiam.

p.s Oczywiście wysokość ma być auto (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #9





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


to, o czym ty piszesz, mija się z tematem tego postu. problemem jest jak rozciągnąć div'a w ten sposób aby div w środku (nie obok) się zawsze mieścił.

co do dwóch div'ów obok siebie to też nie masz racji. sposób jest taki jak napisałem w poprzednim poście, ale wewnętrzne div'y mają wysokość auto (może z jakimiś hack'ami dla ie typu height: auto; height: 100%). div'a kontener można zastąpić body. generalnie nie jest aż tak źle, żeby css sobie nie poradził z tym. jak w wolnej chwili to napiszę, to edytuję post
Go to the top of the page
+Quote Post
-mkdes-
post
Post #10





Goście







A sprawa jest banalnie prosta.
Najlepiej ustaw styl dla wszystkich divów od razu.
Wtedy zawartość rozciąga diva.
div { overflow: hidden; }
Go to the top of the page
+Quote Post
Maxik
post
Post #11





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


Cysiaczek: osobiście coś takiego zrobiłem, myk to faux column i w praktyce wygląda tak: http://maxik.netmark.pl/pyton/div/ kliknij na "Kontakt" i obserwuj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #12





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


Cysiaczek miał na myśli dwa div'y obok siebie, a nie żadne triki z tłem czy coś w tym stylu. Faux columns to po prostu iluzja takich div'ów o równej wysokości. Poza tym dodałem 30 linijek treści w Twoim kodzie (kiedy juz doszedłem który div ma ją zawierać) i nie zauważyłem żeby kolumna menu się rozciągnęła. Czyli taki layout jaki pokazałeś w linku można zrobic z ....... 6 elementów bez zagnieżdzania (bez divów w divach, właściwie tylko z 1 divem w ogóle) i efekt ten sam.

Przecież równie dobrze można dać jako stronę www zwykły jpg z mapami linków i powiedzieć, że się strona nie rozlatuje. Jeśli już robić triki z tłem, to lepiej lewy div floatować, a prawemu dać margines o szerokości lewego diva. i kropka. dwa div'y.

Generalnie problem z tematu jest rozwiązany, problem z dwoma div'ami obok siebie i o równej wysokości chyba rzeczywiście wymaga js.
Go to the top of the page
+Quote Post
DonJeday
post
Post #13





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Problem rozwiązany wystarczyło na początku css dać:
div {
overflow: hidden;
}


A w głównym divie:
height: auto;

Ten post edytował DonJeday 25.10.2008, 16:47:30
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: 22.12.2025 - 16:51