wyświetlacz: inline-blok dodatkowy margines [duplikat]

to pytanie ma już odpowiedzi tutaj : Jak usunąć spację między elementami inline/inline-block? (41 odpowiedzi) Zamknięte 5 lat temu.

Pracuję z kilkoma div s, które są ustawione na display: inline-block i mają zestaw height i width. W kodzie HTML, jeśli po każdym div jest przerwa w linii, to po prawej i na dole div znajduje się automatyczny margines 5px.

Przykład:

<div>Some Text</div>
<div>Some Text</div>

Czy jest jakaś właściwość, którą przeoczyłem, która pozwoli mi zresetować automatyczny margines?

Update

Z tego co tam znalazłem nie da się usunąć marginesu... z wyjątkiem sytuacji, gdy albo masz wszystko w tej samej linii, albo Dodaj komentarze, aby skomentować podziały linii. przykład:

<div>Some Text</div><!--
--><div>Some Text</div>

Nie jest to najlepsze rozwiązanie, ale nadal łatwiejsze do odczytania, jeśli masz wiele linii.

 138
Author: Ben, 2009-12-02

12 answers

Div są traktowane jako elementy liniowe. Podobnie jak spacja lub przerwa między dwoma przęsłami utworzyłaby lukę, robi to między blokami liniowymi. Można albo nadać im ujemny margines albo ustawić word-spacing: -1; Na otaczającym kontenerze.

 117
Author: Daniel,
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-01-23 10:48:27

Biała spacja wpływa na elementy inline .

Nie powinno to być zaskoczeniem. Widzimy go każdego dnia z elementami span, strong i innymi elementami inline. Ustaw rozmiar czcionki na zero, aby usunąć dodatkowy margines.
.container {
  font-size: 0px;
  letter-spacing: 0px;
  word-spacing: 0px;
}

.container > div {
  display: inline-block;
  margin: 0px;
  padding: 0px;
  font-size: 15px;
  letter-spacing: 1em;
  word-spacing: 2em;
}

Przykład będzie wyglądał tak.

<div class="container">
  <div>First</div>
  <div>Second</div>
</div>

Wersja jsfiddle tego. http://jsfiddle.net/QtDGJ/1/

 123
Author: Darwin,
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 16:22:41

Rok później natknąłem się na to pytanie dla inline LI problem, ale znalazłem świetne rozwiązanie, które może mieć zastosowanie tutaj.

Http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/

vertical-align:bottom na wszystkich moich elementach LI Naprawiono mój problem "dodatkowego marginesu" we wszystkich przeglądarkach.

 60
Author: Ben,
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-04-15 12:23:41

font-size: 0 do kontenera macierzystego

(Źródło: https://twitter.com/garand/status/183253526313566208)

 21
Author: optimiertes,
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-04-30 15:07:01

Czystszym sposobem na usunięcie tych spacji jest użycie float: left;:

DEMO

HTML:

<div>Some Text</div>
<div>Some Text</div>

CSS:

div {
    background-color: red;
    float: left;
}

I ' TS obsługiwane w wszystkie nowe przeglądarki . Nigdy nie rozumiem, dlaczego kiedy IE rządził Lota deweloperzy nie sprawili, że ich strona działa dobrze na Firefoksie/chrome, ale dziś, gdy IE spada do 14,3% . tak czy inaczej, nie miałem wielu problemów w IE-9 nawet myślałem, że nie jest obsługiwany, na przykład powyższe demo działa dobrze.

 9
Author: Kuf,
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-06-12 14:56:08

Możesz uzyskać pionową spację, nawet jeśli nie masz żadnej spacji między elementami bloku wbudowanego.

Dla mnie było to spowodowane przez line-height. Prosta poprawka:
div.container {
    line-height: 0;
}
div.container > * {
    line-height: normal;
}
 7
Author: chowey,
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-02-20 20:30:10

Dla przypomnienia, że Resetowanie marginesu i paddingu nie zadziałało dla mnie, ale ten cytat z jednego z powyższych komentarzy okazał się kluczowy i rozwiązał problem dla mnie: "jeśli umieszczę div na tej samej linii, margines znika."

 3
Author: Enchilada,
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
2010-07-22 21:33:16

Istnieje wiele obejść tego problemu, które obejmują odstępy między wyrazami lub rozmiar czcionki, ale ten artykuł sugeruje usunięcie marginesu prawym marginesem-4PX;

Http://designshack.net/articles/css/whats-the-deal-with-display-inline-block/

 2
Author: pixelator,
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-11-09 11:15:41

Po zmaganiu się z tym problemem zbyt wiele razy znalazłem bardzo eleganckie rozwiązanie w HTML 5. W HTML 5 nie powinieneś zamykać kilku tagów (li,p,itp.); ambicja stania się XML na zawsze minęła. Na przykład, preferowanym sposobem wykonania listy jest:

<ul>
   <li>
       <a ...>...</a>
   <li>
       <a ...>...</a>
</ul>

Przeglądarki muszą zamknąć LI i muszą to zrobić bez wprowadzania białych znaków, rozwiązując ten problem. Jeśli nadal masz nastawienie XML to czuje się źle, ale gdy już się nad tym uporasz, to oszczędza wiele koszmarów. I to nie jest hack od opiera się na sformułowaniu specyfikacji HTML 5. Lepiej, ponieważ nie zamykanie tagów jest wszechobecne, nie oczekuję żadnych problemów ze zgodnością (choć nie testowane). Zaletą jest to, że formatery HTML radzą sobie z tym dobrze.

Trochę dopracowany przykład: http://cssdesk.com/Ls7fK

 1
Author: Peter Kriens,
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-04-10 07:52:00

Czy możesz zamieścić link do danego HTML?

Ostatecznie powinieneś być w stanie zrobić:

div {
    margin:0;
    padding: 0;
}

Aby usunąć odstępy. Czy jest to tylko w jednej konkretnej przeglądarce lub wszystkich z nich?

 0
Author: Jeepstone,
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
2009-12-02 16:21:19

Innym rozwiązaniem jest użycie minifier HTML. Działa to najlepiej z procesem budowania Grunt, w którym HTML może być minifikowany w locie.

Usuwane są dodatkowe linie i spacje, co rozwiązuje problem marginesu i pozwala na zapisywanie znaczników w IDE (no </li><li>).

 0
Author: Ben,
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-10-19 17:05:19

Napotkałem ten sam problem. To, co spowodowało to dla mnie, to kilka białych spacji (&nbsp;), które wstawiłem. Po ich usunięciu problem został rozwiązany.

 0
Author: JMS,
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
2015-01-27 05:17:02