Я уверен, что это было предложено ранее в той или иной форме, но я просто не могу найти ответ ..переполнение: скрытое на встроенном блоке добавляет высоту родительского
У меня есть вложенные дивы
<div class="parent">
<div class="child">A</div>
</div>
и ребенок имеет дисплей: встроенный блок и переполнения: скрытый
.parent{
background-color:red;
}
.child{
background-color:green;
display:inline-block;
overflow:hidden;
}
и визуализируется как это:
Вы можете заметить, что родительский элемент на 5px выше, чем ребенок.
Откуда возникает дополнительная высота?
Вот пример: http://jsfiddle.net/w8dfU/
Edit: Я не хочу, чтобы удалить дисплей: встроенный блок или переполнения: скрытый, это упрощенный пример, чтобы проиллюстрировать эту проблему, но в моей реальной макет Мне они нужны оба. Я просто хочу понять, почему эта дополнительная высота появляется. Является ли он где-то указанным, что это должно быть так? Является ли это следствием какой-либо другой функции css?
Я думаю, что этот пост будет полностью ответить на ваш вопрос http://stackoverflow.com/questions/9273016/why-is-this-inline-block-element-pushed-downward –
просто использовать встроенный и не встроенный блок, и ваша проблема будет решена. http://jsfiddle.net/w8dfU/1/ – San
Технический ответ заключается в том, что 'overflow: hidden' перемещает базовую линию встроенного блока.Строка линейного ящика по умолчанию ограничена сидением на той же базовой линии, что и встроенный блок, поэтому линейная строка и ее содержащий div должны увеличиваться по высоте, чтобы содержать спусковой механизм стойки. Но главный ответ на ссылку Максим Степаненко объясняет эту проблему гораздо более четко. – Alohci