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

Zagadkowa biała szpara pod div'ami

Object Storage Arubacloud
0 głosów
537 wizyt
pytanie zadane 18 grudnia 2017 w HTML i CSS przez Artek Stary wyjadacz (11,800 p.)

Mamy następujący kod html :

<div id="div1"><div class="test"/></div><div class="test"/></div></div>

Jak widać wewnątrz nie ma żadnych spacji.

Mamy też kod css

 * {box-sizing: border-box;}
	   
	   #div1
	   {
	     border: 1px solid red;
	   }
	    
	   .test
	   {
	     width:50%; height:40px; 
        display:inline-block; 
         background:green;
	   }
	   
	   .test:nth-of-type(even)
	   {
	     background:black;
	   }

No i teraz zastanawia mnie skąd wzięła się ta biała szpara na dole? Usunąłem spacje wewnątrz diva, próbowałem dać ::after{content:"";} i też nic. Ktoś jest w stanie to wyjaśnić? Aha i co ciekawe szpara znika gdy w kontenerze ustawimy font-size na 0;

https://codepen.io/anon/pen/ZvQPMp?editors=1111

3 odpowiedzi

+1 głos
odpowiedź 3 stycznia 2018 przez JayJay Mądrala (6,020 p.)

Elementy, którym nadasz "display: inline-block" (w uproszczeniu) podlegają takim modyfikacjom (width, height, ...), jak elementy blokowe, ale podobnie jak elementy liniowe układają się w liniach. Domyślnie między liniami ustawiony jest odstęp. Sprawia on, że poszczególne linie tekstu nie przylegają do siebie, lecz każda znajduje się x px pod poprzednią.

https://developer.mozilla.org/en-US/docs/Web/CSS/line-height

http://www.kurshtml.edu.pl/css/wyswietlanie,pozycjonowanie.html

https://developer.mozilla.org/en-US/docs/Web/CSS/display

 

PS. masz błędy w html.

Ukośnika nie stawiamy przy otwieraniu znacznika:

Źle:

<div class="test"/></div>

Dobrze:

<div class="test"></div>

 

komentarz 4 stycznia 2018 przez Artek Stary wyjadacz (11,800 p.)

Domyślnie między liniami ustawiony jest odstęp. 

No, ale przecież tutaj jest tylko jedna linia. 

0 głosów
odpowiedź 18 grudnia 2017 przez shotokan Nałogowiec (39,660 p.)
Ten zagadkowy odstęp wynika z zastosowania display:inline-block. Po prostu tak to już jest z tą właściwością CSS i już. Jeśli układa się elementy za pomocą tej właściwości to trzeba sobie poradzić z tym odstępem pewnymi sposobami.
komentarz 19 grudnia 2017 przez Ziuziek Mądrala (5,140 p.)
a ja mam pytanie ;d dlaczego jest tak ze (dotyczy tego codepena)

 

<div id="div1">
  <div class="test"/></div><div class="test"/></div>
</div>

 

Złączając divy mam je w 1 lini  a jesli zrobie odstep

 

<div id="div1">
  <div class="test"/></div>    <div class="test"/></div>
</div>

 

te divy klasy test jest jeden pod drugim?
komentarz 19 grudnia 2017 przez Artek Stary wyjadacz (11,800 p.)
Bo tam jest spacja i kradnie miejsce
komentarz 19 grudnia 2017 przez Ziuziek Mądrala (5,140 p.)
nie takiej odpowiedzi oczekuje :P
komentarz 19 grudnia 2017 przez Artek Stary wyjadacz (11,800 p.)
Ale to prawda. Zobacz. Szerokość div'ów jest ustawiona na 50%. Jeżeli teraz po pierwszym divie wciśnie się ta nieszczęsna spacja to nie ma już wystarczająco dużo miejsca na kolejnego diva. Pozostałe miejsce = 50% kontenera minus miejsce zajęte przez spację. Skoro nie ma miejsca aby w jednej linii wszystko upchać, przeglądarka upchnie to pod - w nowej linii.
komentarz 19 grudnia 2017 przez Ziuziek Mądrala (5,140 p.)
oo, dzieki wielkie :D !
0 głosów
odpowiedź 3 stycznia 2018 przez Bazinga Bywalec (2,120 p.)

Pierwszy sposób:- line-height rodzica na 0px

       #div1
       {
         border: 1px solid red;
         line-height:0px;
       }

 

Drugi sposób vertical-align elementu, zmieniasz na top, lub bottom

.test
{
	width:50%;
	height:40px;
	display:inline-block;
	background:green;
	vertical-align:top;
}

 

komentarz 3 stycznia 2018 przez Artek Stary wyjadacz (11,800 p.)
Kolega nie zrozumiał pytania. Pytanie nie brzmi jak to zlikwidować - na to jak stworzyć taki layout to ja znam co najmniej 2 sposoby to nie problem.

 

Pytanie brzmi skąd ta szpara się wzięła?
komentarz 3 stycznia 2018 przez Bazinga Bywalec (2,120 p.)
Ach to nie mam pojęcia:)

Prawdopodobnie , bo takie są jej właściwości.
Jak dodasz tam tekst w środku divów to szpary znikają => i do tego inline-block, zostało chyba stworzone.

Tutaj masz, rozłożone na czynniki pierwsze

https://meyerweb.com/eric/css/inline-format.html

Równie dobrym pytaniem może być, czemu inne metody walczenia z tym działają:
https://css-tricks.com/fighting-the-space-between-inline-block-elements/

Podobne pytania

0 głosów
1 odpowiedź 166 wizyt
pytanie zadane 30 czerwca 2016 w HTML i CSS przez ula Nowicjusz (210 p.)
+1 głos
3 odpowiedzi 409 wizyt
pytanie zadane 9 października 2021 w HTML i CSS przez toko Dyskutant (7,670 p.)
0 głosów
2 odpowiedzi 927 wizyt
pytanie zadane 5 maja 2020 w HTML i CSS przez ptomeccc Użytkownik (800 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...