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

question-closed Wątpliwość dotycząca ustawiania bloków zgodnie z planem

Object Storage Arubacloud
0 głosów
259 wizyt
pytanie zadane 13 lipca 2016 w HTML i CSS przez Informatykier Nowicjusz (170 p.)
zamknięte 13 lipca 2016 przez Informatykier

Mam małą zagwozdkę. Moim planem było stworzenie bloku (klasa "wrapper") o stałej (450px) szerokości. W nim miały znajdować się pomniejsze bloki (klasa "single"), mające stałą (200px) wysokość i zawierające pewne informacje: obrazek (klasa "image", w przykładzie użyłem byle czego znalezionego w google), jakąś nazwę/tytuł (klasa "title"), oraz opis (klasa "description"). Chciałem, by obrazek był po lewej stronie, a nazwa/tytuł + opis z prawej (dlatego zamknąłem je w bloku o klasie "info"). Chciałem też, by nazwa/tytuł był zawsze - bez względu na długość opisu - u góry, a opis był zamieszczony pod nim i jeżeli byłby zbyt długi, to żeby można było go przewijać (zastosowałem do tego overflow: auto). Zadowalające efekty otrzymałem przez użycie flexboxa na klasie "single" (co zawiera przykład), ale również przez odpowiednie użycie float: right.

<article class="wrapper">
  <section class="single">
    <div class="image"></div>
    <div class="info">
      <header class="title">Title</header>
      <div class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
        dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
    </div>
  </section>
</article>
.wrapper {
  background-color: red;
  box-sizing: border-box;
  padding: 10px;
  max-width: 450px;
}

.single {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  background-color: green;
  height: 200px;
}

.image {
  background-image: url('https://pixabay.com/static/uploads/photo/2015/10/01/21/39/background-image-967820_960_720.jpg');
  display: inline-block;
  height: 100%;
  width: 33%;
}

.info {
  display: inline-block;
  width: 66%;
}

.title {
  margin: 10px 0;
  text-align: center;
  text-transform: uppercase;
}

.description {
  padding: 0 5px;
  height: 162px;
  overflow: auto;
}

Nie jestem pewny, czy przypadkiem nie popełniłem błędu przez użycie display: inline-block i przez ustalenie width'ów (to są takie resztki z poprzedniego eksperymentowania), bo chyba coś podobnego uzyskałbym przy flex: 1 w "image" i flex: 2 w "info". Byłbym wdzięczny również i za podpowiedź w tej kwestii, ale to nie tego do końca dotyczy moje zapytanie.

Moja zagwozdka: czy istnieje jakiś mniej skomplikowany sposób, bez konieczności używania floatów (bo chyba od tego nie są) czy tabel (bo chyba też nie od tego są), by uzyskać podobny efekt? Próbowałem skorzystać z właściwości "position", ale działy mi się dziwne rzeczy. W podanym przeze mnie rozwiązaniu boli mnie też użycie konkretnej wartości dla wysokości klasy "description", żeby zająć całą możliwą powierzchnię. Może jednak zastosowanie "display: inline-block" było dobrym podejściem, tylko ja coś pominąłem? Bo jak próbowałem z tym "display", to blok klasy "info" schodził niżej i jedynym sposobem, by nazwa/tytuł była na górze, to odpowiednie wypełnienie opisu ("description"). Jak tekstu było za mało, to nazwa/tytuł były niżej wraz z opisem.  

Będę wdzięczny za każdą pomoc w związku z moją wątpliwością, jak również wszelakie dodatkowe opinie/sugestie związane z moim kodem. Z góry dziękuję.

komentarz zamknięcia: Myślę, że wiem co chciałem. Jeszcze raz dziękuję!

1 odpowiedź

+1 głos
odpowiedź 13 lipca 2016 przez xmentor Nałogowiec (49,520 p.)
wybrane 13 lipca 2016 przez Informatykier
 
Najlepsza

bo chyba coś podobnego uzyskałbym przy flex: 1 w "image" i flex: 2 w "info". 

W .image usuń te wyświetlanie linowo-blokowe, width możesz zamienić na flex:1, w .info również display:inline-block jest zbędne, zamiast width, nadaj flex:2 - ale nie musisz, width też się sprawdzi :)

Moja zagwozdka: czy istnieje jakiś mniej skomplikowany sposób, bez konieczności używania floatów

Flexbox :D

We wrapperze użyłeś flexboxu to czemu by nie użyć w bloku .info?

Dla klasy .info dodaj jeszcze dwie właściwości, display:flex i flex-direction:column , no a height usuń - sprawdź czy zadziała.

komentarz 13 lipca 2016 przez Informatykier Nowicjusz (170 p.)
Czyli te moje przypuszczenia były słuszne. Dzięki bardzo za weryfikację! Rzeczywiście działa bez zbędnych inline-block.

Właśnie .wrapper nie jest flexboxem, bo raczej nie będzie mu to potrzebne. Jak będę tworzył nowe bloki na bazie .single, to będą jeden pod drugim i nie przypuszczam - choć mogę się mylić - żeby coś poszło nie tak. A .info było flexboxem. :)

Czyli jednak flexbox to jedyne wyjście zamiast float czy table?

Przeróbka .info zgodnie ze wskazówkami wydaje się ładnie działać. Jeszcze raz dzięki!
komentarz 13 lipca 2016 przez xmentor Nałogowiec (49,520 p.)

tfu, pomyliłem .wrapper z .single - mój błąd.

Czyli jednak flexbox to jedyne wyjście zamiast float czy table?

Jedno z wielu. Można kombinować z opływaniem(float).

Podobne pytania

0 głosów
2 odpowiedzi 312 wizyt
0 głosów
1 odpowiedź 198 wizyt
pytanie zadane 17 lipca 2023 w HTML i CSS przez Skulak Nowicjusz (220 p.)
0 głosów
1 odpowiedź 131 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...