Глифы и область содержимого

Даже в тех случаях, когда вы пытаетесь не допустить перекрытия фонов строковых незамещаемых элементов, все равно это может произойти. Это зависит от того, какой шрифт используется. Проблема заключается в разнице между кегельным квадратом шрифта и глифами его символов. Как выясняется, у большинства шрифтов высоты кегельных квадратов и глифов символов не совпадают. Это, возможно, звучит весьма абстрактно, но имеет практические последствия. В CSS2.1 мы находим следующее: «Высота области содержимого должна основываться на высоте шрифта, но эта спецификация не определяет, как именно это делается. Агент пользователя может… применять кегельный квадрат или максимальный вынос верхнего и нижнего выносных элементов шрифта. (Последнее гарантировало бы, что глифы, части которых выступают за границы кегельного квадрата, все еще умещались бы в область содержимого, но в реальности приводит к тому, что блоки для разных шрифтов меняют размеры поразному.)»

Иначе говоря, «область отрисовки» строкового незамещаемого элемента остается за агентом пользователя. Если агент пользователя за высоту области содержимого принимает кегельный квадрат, тогда фон строкового незамещаемого элемента будет равен высоте кегельного квадрата (что является значением font-size).


Если агент пользователя использует максимальный вынос верхнего и нижнего выносного элементов шрифта, тогда фон может быть выше или ниже кегельного квадрата. Следовательно, вы могли бы задать строковому незамещаемому элементу line-height в 1em, а фон по-прежнему перекрывал бы содержимое других строк. В CSS2 или CSS2.1 нет возможности предотвратить это перекрытие, но для CSS3 предлагаются свойства, которые могли бы предоставить автору возможность управлять поведением агента пользователя. До тех пор, пока эти свойства не будут реализованы широко, по-настоящему точная разметка текстов с использованием CSS невозможна.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела CSS на эту тему:
Автоматическое определение высоты
Блок-контейнер
Блок-контейнер
Блочные элементы
Вертикальное выравнивание