Откуда появляется горизонтальный отступ у инлайн-блоков?

Есть элемент div, в нем ссылка, в которой находится span с названием. Элементу задано отображение inline-block. Когда я задаю ссылке внутри него display: table-cell, у div появляется нижний отступ. Хотя у него нет ни внешних, ни внутренних отступов.

<div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div><div class="item"><a><span>Some title</span></a></div>


.item {
  width: 280px;
  background: #2569c7;
  display: inline-block;
  font-size: 18px;
  padding: .5em;
}

a {
    display: table-cell;
    height: 80px;
    vertical-align: middle;
    margin: 0;
    padding: 0;
}

span {
  color: white;
}


5b2ea1a58e619378292102.png

https://jsfiddle.net/wqc6v49n/7/

Откуда эти отступы? Как их убрать?
  • Вопрос задан
  • 566 просмотров
Решения вопроса 1
@tyzberd
Как пофиксить вы поняли.
А появляются эти отступы потому, что с доктайпом в строгом режиме (html5 доктайп тоже) браузер все равно резервирует место для символов таких как g, j или q, даже для картинок https://jsfiddle.net/erjwux0o/ и тут уже появляется междустрочный интервал.
https://www.quirksmode.org/css/quirksmode.html
https://en.wikipedia.org/wiki/Quirks_mode
и если ваш код добавить в html без доктайпа, отступа не будет
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
aliencash
@aliencash
Партизан
Вы меняете способ отображения блочного элемента на строчный (inline). В этом случае элемент ведет себя как символ. Так же как буква или цифра или спец.символ в тексте. А особенностью символов является межсимвольный и междустрочный интервалы. На скриншоте вы как раз и видите междустрочный интервал между inline-блоками.
Ответ написан
Audiophile
@Audiophile Автор вопроса
Помогло vertical-align:
.item {
// ...
vertical-align: middle 
}


По умолчанию было baseline (браузер ставил), из-за этого были отступы. Хотя я не понимаю, по какой логике.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы