Spacja między elementami listy Inline-Block [duplikat]
To pytanie ma już odpowiedź tutaj:
- Jak usunąć spację między elementami inline-block? 35 odpowiedzi
Możliwy duplikat:
niechciany margines w elementach listy bloków inline
Jak usunąć "niewidzialną przestrzeń" z HTML
Dlaczego elementy listy inline-block mają miejsce w nich? Bez względu na to, jak robię pozycje listy w menu, zawsze dostaję spacje.
li {
border: 1px solid black;
display: inline-block;
height: 25px;
list-style-type: none;
text-align: center;
width: 50px;
}
ul {
padding: 0;
}
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
8 answers
Widziałem to I odpowiedziałem na to wcześniej:
Po dalszych badaniach mam
odkrył, że inline-block
jest
metoda zależna od spacji i
zależy od ustawienia czcionki. W tym przypadku renderowane jest 4px.
Aby tego uniknąć można uruchomić wszystkie swoje
li
S razem w jednej linii lub bloku
tagi end I begin razem
tak:
<ul> <li> <div>first</div> </li><li> <div>first</div> </li><li> <div>first</div> </li><li> <div>first</div> </li> </ul>
Jak wspomniano w innych odpowiedziach i komentarzach, najlepsze praktyka rozwiązywania tego problemu polega na dodaniu font-size: 0;
do elementu nadrzędnego:
ul {
font-size: 0;
}
ul li {
font-size: 14px;
display: inline-block;
}
Jest to lepsze dla czytelności HTML (unikanie uruchamiania tagów razem itp.). Efekt odstępów jest spowodowany ustawieniem odstępów czcionek, więc należy go zresetować dla elementów inlined i ponownie ustawić dla zawartości wewnątrz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-01 09:36:41
Rozwiązanie:
ul {
font-size: 0;
}
ul li {
font-size: 14px;
display: inline-block;
}
Musisz ustawić rozmiar czcionki rodzica na 0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-19 17:53:10
Dodałbym właściwość CSS float left, jak widać poniżej. To pozbędzie się dodatkowej przestrzeni.
ul li {
float:left;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-19 17:53:41
W rzeczywistości nie jest to specyficzne dla display:inline-block
, ale dotyczy również display:inline
. Tak więc, oprócz rozwiązania Davida Horáka, działa to również:
ul {
font-size: 0;
}
ul li {
font-size: 14px;
display: inline;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-16 14:17:47
Inne rozwiązanie, podobne do Rozwiązania Gerbusa , ale działa również z względnym rozmiarem czcionki.
ul {
letter-spacing: -1em; /* Effectively collapses white-space */
}
ul li {
display: inline;
letter-spacing: normal; /* Reset letter-spacing to normal value */
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:09
Miałem ten sam problem, kiedy użyłem inline-block w moim menu miałem spację między każdym " li " znalazłem proste rozwiązanie, nie pamiętam gdzie go znalazłem, w każdym razie oto co zrobiłem.
<li><a href="index.html" title="home" class="active">Home</a></li><!---->
<li><a href="news.html" title="news">News</a></li><!---->
<li><a href="about.html" title="about">About Us</a></li><!---->
<li><a href="contact.html" title="contact">Contact Us</a></li>
Dodajesz znak komentarza między każdym końcem i początkiem: "li" Wtedy przestrzeń pozioma zniknie. Mam nadzieję, że odpowiedź na pytanie Dzięki
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-01 04:53:48
Po prostu usuń przerwy między li w kodzie html... niech li będzie tylko w jednej linii..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 09:40:28
Nawet jeśli nie opiera się na inline-block
, Rozwiązanie to może być warte rozważenia (pozwala na prawie taką samą kontrolę formatowania z wyższych poziomów).
ul {
display: table;
}
ul li {
display: table-cell;
}
- zgodność z IE8+ i głównymi przeglądarkami
- względna / stała wielkość czcionki niezależna
- niezależne formatowanie kodu HTML (bez potrzeby klejenia
</li><li>
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-23 10:55:32