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

Układ bloków o różnej wysokości - layout

VPS Starter Arubacloud
0 głosów
402 wizyt
pytanie zadane 2 października 2015 w JavaScript przez JakubX Użytkownik (520 p.)

Hej, chcę na blogu w widoku kategorii mieć wyświetlone artykuły w dwóch kolumnach. Z racji tego, że np. niektóre mają zdjęcie, inne nie, bloki mają różną wysokość. Jak stworzyć taki układ? Chodzi o układ mniej więcej, jak tu: http://stylowi.pl/ tylko z dwoma kolumnami (to akurat ma małe znaczenie).

CSS jest w stanie tak to ułożyć, więc podejrzewam, że trzeba będzie użyć JavaScriptu:

2 odpowiedzi

0 głosów
odpowiedź 2 października 2015 przez Patrycjerz Mędrzec (192,320 p.)
edycja 2 października 2015 przez Patrycjerz

Stwórz sobie kolumny z float: left i później zapełnij je blokami z odpowiednimi marginesami:

<div class="contener">
	<div style="float: left">
		<div class="article">
		</div>
	</div>
	<div style="float: left">
		<div class="article">
		</div>
	</div>
	<div style="float: left">
		<div class="article">
		</div>
	</div>
</div>

EDIT: Masz demko: http://codepen.io/anon/pen/rOyMve.

0 głosów
odpowiedź 2 października 2015 przez iwan9449 Pasjonat (20,810 p.)

Przecież to żaden problem:

<div class="main">
     <div class="col">
          <div class="article">...</div>
          <div class="article">...</div>
          <div class="article">...</div>
     </div>
      <div class="col">
          <div class="article">...</div>
          <div class="article">...</div>
     </div>
</div>

i do tego prosty css:

.main {
    margin: 0 auto;
    width: 1000px;
    overflow: hidden;
}

.col {
   float: left;
   width: 500px;
}

Pisane z palca, oczywiście trzeba to dostosować do własnych potrzeb. Można to także wykonać na grid'zie, ale skoro zadajesz takie pytanie, to zakładam, że jestes początkujący i nie ma co mieszać Ci w głowie.

Pozdrawiam!

komentarz 3 października 2015 przez JakubX Użytkownik (520 p.)

Nie podoba mi się sztywne przyporządkowanie div.item do danej kolumny. W przypadku dodania responsywności (np. przekształcenie widoku do jednej kolumny na mniejszym ekranie), kolejność bloków się sypie. Tu jest inna wersja, bez sztywnego rozdzielenia na kolumny, z wykorzystaniem właściwości 'column-count' i 'inline-block.

<div class="masonry">
   <div class="item"></div>
   <div class="item"></div>
   ...
   <div class="item">...</div>
</div>
.masonry {
    -moz-column-count: 2;
    -webkit-column-count: 2;
    column-count: 2;
    -moz-column-gap: 1em;
    -webkit-column-gap: 1em;
    column-gap: 1em;
}

.item {
    background-color: #eee;
    display: inline-block;
    margin: 0 0 1em;
    width: 100%;
}

Tu jednak kolejność bloków jest niewłaściwa:
1|5
2|6
3|7
4|8

zamiast:
1|2
3|4
5|6
7|8

Ostatecznie znalazłem rozwiązanie! :) Wystarczyło słowo 'masonry' (cegiełkowy układ). Zapraszam tu: Masonry.js

Podobne pytania

+1 głos
1 odpowiedź 110 wizyt
+1 głos
2 odpowiedzi 400 wizyt
pytanie zadane 3 kwietnia 2023 w HTML i CSS przez zbiku25 Gaduła (3,000 p.)
0 głosów
0 odpowiedzi 118 wizyt

93,023 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,368 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...