Alvego
@Alvego

Необъяснимый отступ. inline-flex + clearfix. Откуда?

Необъяснимый отступ сверху в 1 em.
[ inline-table | inline-flex ] + clearfix (Bootstrap)
Повторяется в свежих Chrome, FF, IE

3debbd41bc0c4f25ba68181ea4fa4fb7.png

Исправляется при:
  • добавлении текста
  • задания свойства content: отличного от "" ( например "1" или url() )
  • задания свойства display на любое, отличное от inline-table, inline-flex
  • задания свойства vertical-align, отличного от baseline


HTML:

<div id="a"><div id="b"></div></div>

CSS:

#a {
  border:1px solid blue;
}

#b {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex; /* inline-table too */
  border:1px solid red;
  width:50px;
  height:50px;
}

#b:after { /* bootstrap clearfix */
  display:table;
  content:'';
}


Пример на JSFiddle

Странный отступ сверху, примерно 1em - что наводит на мысль о пробеле (text-node)
Но в dom их не видно, да и задание font-size:0; line-height:0; мало что дают.

Как понять, откуда берется отступ, и чем обусловлен его размер?
  • Вопрос задан
  • 962 просмотра
Пригласить эксперта
Ответы на вопрос 3
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
попробуй reset
*{margin:0; padding:0;}
Ответ написан
Комментировать
sadisme
@sadisme
font-size:30rem
#b {
align-self:flex-start;
vertical-align: top;
}
Ответ написан
Комментировать
Nivalis
@Nivalis
Я конечно не эксперт, но свойство inline - делает элемент строчным. А т.к. это строчный элемент, то у него есть font-size и line-height.
Дабы убрать отступ, то у родителя inline-элемента нужно задать свойство:
#a {
   font-size: 0;
}

Может быть гуру с хабра меня поправят в причинах этого, но исправляется вот так.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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