После двух замечательных ответов, объясняющих поведение элементов inline-block
(Почему этот элемент встроенного блока нажат вниз? и почему высота линии span бесполезна.) У меня все еще есть два необъяснимых вопроса.
1.. Какова причина изменения базовой линии элемента inline-block
от базовой линии его строки до края нижнего края?
http://www.w3.org/TR/CSS2/visudet.html#leading
Базовый уровень "встроенного блока" является базовым значением его последнего строкового поля в нормальном потоке, если он не имеет никаких строк в потоке или если его свойство "переполнения" имеет вычисленное значение, отличное от "видимого" ', в этом случае базовая линия - это край нижнего края.
2. Как вычислить этот сдвиг?
Важно: Я не пытаюсь найти решение, как его исправить. Я пытаюсь понять, в чем причина изменения поведения позиционирования элемента inline-block
при его применении overflow: hidden
. Так что, пожалуйста, не отправляйте ответы на макеты.
UPDATE
К сожалению, я не получил того, чего хочу, хотя принял ответ. Я думаю, проблема в самих вопросах. Что касается первого вопроса: я хотел понять, почему inline-block
не может сохранить базовую линию своей строки, даже если она имеет overflow:hidden
(несмотря на спецификацию W3C, конечно). Я хотел услышать проектные решения, а не просто нужно что-то сказать, потому что W3C это требует. Вторая. Я хочу получить формулу, в которой мы можем вставить font-size
и line-height
элемента и получить правильный результат.
В любом случае спасибо кому-нибудь:)
ОБНОВЛЕНИЕ 2
К счастью и субъективно ответ найден! См. Первый повторный ответ. Спасибо, @pallxk!)