Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
2 мин
722

Необъяснимый пробел между элементами div с display:inline-block

Часто при верстке сайта возникает ситуация, когда между двумя блочно-строчными элементами (display:inline-block) появляется небольшой зазор. Например, есть

Часто при верстке сайта возникает ситуация, когда между двумя блочно-строчными элементами (display:inline-block) появляется небольшой зазор. Например, есть два элемента div, которые выглядят так:

<div id="container">Первый блок</div>
<div id="container">Второй блок</div>

Стили для этих элементов выглядят так:

#container {
    display:inline-block;
    position:relative;
    background:rgb(255,100,0);
    margin:0px;
    width:40%;
    height:100px;
}

В результате эти два блока не идут напрямую друг за другом, а между ними есть небольшой зазор.

Причина этому — пробелы и переносы строк в HTML-коде, которые браузер воспринимает как пробельные символы, создающие зазор между элементами.

Есть несколько способов решения этой проблемы:

  1. Удаление пробелов в HTML-коде. Самый простой способ — это просто удалить пробел или перенос строки между закрывающим тегом первого div и открывающим тегом второго div.
<div id="container">Первый блок</div><div id="container">Второй блок</div>
  1. Использование отрицательного значения для margin. Можно задать отрицательное значение для margin, чтобы компенсировать пробелы.
#container {
    display:inline-block;
    position:relative;
    background:rgb(255,100,0);
    margin:0px -4px;
    width:40%;
    height:100px;
}
  1. Изменение font-size у родительского элемента. Если установить font-size равным 0 для родительского элемента, то пробелы между дочерними элементами исчезнут. Однако, нужно помнить, что это повлияет на размер текста внутри дочерних элементов, и его придется устанавливать отдельно.
.parent {
    font-size: 0;
}

#container {
    font-size: 16px;
    display:inline-block;
    position:relative;
    background:rgb(255,100,0);
    margin:0px;
    width:40%;
    height:100px;
}

Важно помнить, что ни один из этих методов не является «правильным» или «неправильным». Все они имеют свои плюсы и минусы, и выбор зависит от конкретной ситуации и предпочтений разработчика.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий