• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Automatyczne dopasowanie wysokości kilku div'ów

42 Warsaw Coding Academy
+4 głosów
7,388 wizyt
pytanie zadane 7 kwietnia 2015 w HTML i CSS przez 0liver Obywatel (1,070 p.)
edycja 7 kwietnia 2015 przez 0liver

Witam

Mam przykładowo taki kod:

<div id="container">
	<div id="sidebar"></div>
	<div id="content"></div>	
</div>

 

"sidebar" i "content" są ustawione obok siebie. Chciałbym aby ich wysokość była zawsze równa wysokości najdłuższego elementu. Czyli np. gdy do "content" dodam jakąś zawartość, która zwiększy jego długość, to długość "sidebar" dopasowuje się automatycznie do "content".

8 odpowiedzi

+1 głos
odpowiedź 7 kwietnia 2015 przez krecik1334 Maniak (58,390 p.)
wybrane 7 kwietnia 2015 przez 0liver
 
Najlepsza

Można to zrobić w CSS. Dodaj do stylów tych divów które będą obok siebie takie linijki ( w CSS )

overflow:hidden;
padding-bottom: 20000px;
margin-bottom: -20000px;

Daj tez do diva #container linię: overflow:hidden; podobnie jak do divów leżących obok siebie.

Niestety będziesz miał chyba problemy ze stopką, u mnie na stronie to wygląda tak: http://niekrytykretek.cba.pl/

 

 

komentarz 7 kwietnia 2015 przez 0liver Obywatel (1,070 p.)
Wypróbowałem ten sposób i wszystko działa tak jak powinno. Nie ma nawet problemu ze stopką. Pozdrawiam :)
+2 głosów
odpowiedź 7 kwietnia 2015 przez Harsay Pasjonat (23,640 p.)

Musisz w CSS ustawić, że dane divy działają na zasadzie tabeli. W takim wypadku "komórki tabeli" będą wyrównane jeżeli chodzi o wysokość.

#container {
    display: table;
}

#sidebar {
    display: table-cell;
    width: 100px;
    background: blue;
}

#content{
    display: table-cell;
    width: 860px;
    background: red;
}

 

komentarz 7 kwietnia 2015 przez testerius Pasjonat (23,960 p.)
Heh, kolega mnie ubiegł. :P
komentarz 7 kwietnia 2015 przez Czort Nałogowiec (32,500 p.)
Witam.

W jaki sposób podkreślasz składnie css?
+1 głos
odpowiedź 7 kwietnia 2015 przez testerius Pasjonat (23,960 p.)

Zrobiłem coś w takim stylu, demo w sumie to dzięki twojemu pytaniu dowiedziałem się czegoś nowego. :D A więc tak ustawiasz w #container display: table; (tabela) a #sidebar oraz #content na display: table-cell; (komórka tabeli). Dzięki temu niezależnie od zawartości, długość zawsze powinna być równa.

 

0 głosów
odpowiedź 7 kwietnia 2015 przez Artix Bywalec (2,110 p.)
edycja 7 kwietnia 2015 przez Artix
Jeżeli mają być równe to należy nadać pewną szerokość na container powiedzmy 1200 px a w sidebar i content ustawic width na 50% jeżeli dobrze zrozumiałem.A jeżeli chcesz zrobić bez okreslania z góry szerokości to muszisz to zrobić przez Javascript :)

Edit

Kurde cały czas myślałem, że chodzi o szerokość a nie o wysokość >.<
komentarz 7 kwietnia 2015 przez krecik1334 Maniak (58,390 p.)
Nie koniecznie, jest pewien sposób w CSS.
0 głosów
odpowiedź 7 kwietnia 2015 przez niezalogowany
Robilem cos takeigo kiedys tylko JS musisz sprawdzic wysokosc obiektu i ustawiasz go dynamicznie przez CSS
0 głosów
odpowiedź 7 kwietnia 2015 przez M4tthew Gaduła (4,480 p.)
Możesz ustawić container na jakąś określoną szerokość a sidebar i content dać w % wtedy będą się dopasowywały
0 głosów
odpowiedź 7 kwietnia 2015 przez mgpl Obywatel (1,430 p.)

#container { display: flex; justify-content: stretch;  flex-direction: row; }

#sidebar, #content {  }

Jak używać flexbox: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

 

 

 

0 głosów
odpowiedź 7 kwietnia 2015 przez Czort Nałogowiec (32,500 p.)
edycja 7 kwietnia 2015 przez Czort

Witam.

Ja bym spróbował w css następująco:
 

<div id="container" style="display:table">

    <div id="sidebar" style="display:table-cell;"></div>

    <div id="content" style="display:table-cell;"></div>   

</div>



Ewentualnie można zrobić "trick" z tłem, np.

 

<div id="container" style="background-color:red;">

    <div id="sidebar"></div>

    <div id="content" style="background-color:blue;"></div>   

</div>

 

Podobne pytania

0 głosów
1 odpowiedź 274 wizyt
+2 głosów
4 odpowiedzi 15,113 wizyt
pytanie zadane 28 lipca 2015 w HTML i CSS przez ewelina.r Nowicjusz (210 p.)
0 głosów
1 odpowiedź 134 wizyt

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...