Я столкнулся с каким-то странным поведением CSS. Тем не менее, он работает точно так же в Firefox, Chrome и IE (9), поэтому я подозреваю, что это часть стандарта CSS, однако я не могу найти никакой ссылки на то, почему это может быть так.Высота линии CSS меньше размера шрифта приводит к нечетному переполнению в div
У меня есть div с некоторым текстом в нем. Когда я устанавливаю размер шрифта больше высоты строки, высота div вычисляется с использованием высоты строки, но контент намного больше. То есть текст в поле намного больше, чем сам ящик. У меня есть jsfiddle с ситуацией здесь:
При перемещении мыши над ограничительной рамки, вы можете увидеть парения CSS активирует прежде чем войти в DIV. Аналогично, нажатие рядом, но все же вне поля активирует событие javascript click. Это немного легче увидеть, где коробка содержание здесь:
Высота правильно рассчитал, когда дисплей объекта на DIV установлен на инлайн (который я не могу сделать по разным причинам стайлинга). Кроме того, проблема решена, если я устанавливаю свойство переполнения скрытым. Для меня это означает, что контент больше, чем его поле, но я не уверен, почему. В частности, я хочу знать, почему свойство модели «height» css box объекта меньше его фактической высоты, как показано на странице.
Я просмотрел спецификацию CSS, и я не видел там своего ответа, но я подозреваю, что там что-то там отсутствует.
Редактировать
Я нашел ссылку, которая делает некоторые ссылки на проблемы у меня возникли, но я понятия не имею, что их источник, и почему это может быть дело.
Кроме того, в ответ на некоторые ответы, которые я получил, я не ищу, как исправить мой css, поэтому проблема с hover больше не появляется, я ищу , почему это происходит в первую очередь.
Редактировать Опять Видимо, какое-либо содержимое коробки, независимо от того, внутри границ приставке или не парить вызывает на поле. (См. Комментарий г-на Листера по адресу This answer. Что мне действительно хотелось бы узнать, это где в спецификации это поведение происходит. Является ли он там? Или это реализация, о которой все о себе говорят?
Поскольку вы можете сделать div большим, увеличив высоту строки текста внутри него, вполне естественно, что вы также можете уменьшить div, уменьшив высоту линии. Для меня единственным сюрпризом здесь является то, что область зависания стала непрямоугольной. –
Да, и это то, что меня тоже удивляет. Я был _hoping_, чтобы сделать поле меньшим, используя линейную высоту, что я не хотел, это поведение наведения (которое, как я уже упоминал, можно решить, используя overflow: hidden) –