Правда ли, что единица измерения pt ВСЕГДА будет физически измеряться последовательно?
Допустим, я хочу использовать pt
блок, чтобы убедиться, что мои HTML-страницы выглядят согласованно на устройстве / браузере / ОС. Мое понимание pt
в том, что он должен быть равен 1/72 дюйма на экране.
HTML
<html>
<body>
<div></div>
</body>
</html>
CSS
div {
background-color:black;
height: 72pt;
width: 72pt;
}
Это производит более или менее то, что выглядит как квадрат 1"х 1" на моем экране (это всего лишь скриншот того, что я вижу). Тем не менее, я могу физически поставить линейку на свой дисплей и измерить ее, и результат будет больше похож на 1 3/16".
Уровень масштабирования моего браузера составляет 100%, так что это не влияет на вещи. Я использую Chrome в Windows 8.1 с установленным размером шрифта по умолчанию (16 в Chrome). Мой уровень масштабирования ОС составляет 100%. У меня 24-дюймовый монитор с разрешением 1920x1080. Также стоит отметить, что Chrome сообщает, что квадрат точно равен 96x96 пикселей.
Это заставляет меня верить, что то, что я слышал, что 72pt = 1 физический дюйм в реальном мире на любом заданном комбинированном дисплее / браузере / ОС, НЕ является точным. Это правильно?
Учитывая это поведение, я предполагаю, что, если бы у меня был 22-дюймовый монитор с тем же разрешением, плотность пикселей была бы больше, и, следовательно, квадрат был бы меньше (возможно, ближе к тому, чтобы быть ровно 1", как измерено физической линейкой).
Как Retina-дисплеи работают со всем этим? Я предполагаю, что квадрат не будет выглядеть в два раза меньше (это было бы глупо). Браузер выполняет какую-то внутреннюю обработку дисплеев со сверхвысоким разрешением? Например, в Chrome, похоже, есть какое-то понятие "соотношение пикселей устройства (DPR)", поэтому он может рассматривать iPad с "истинным" разрешением 2048 x 1536 (DPR 2) как более стандартный 1024 x 768. Поэтому я предполагаю, что В результате DPR несколько нормализует экраны с совершенно разными значениями DPI, но после того, как это будет учтено, разные устройства с разными DPI/PPI будут по-прежнему видеть немного разные физические размеры нашего квадрата.
1 ответ
Правда ли, что единица измерения pt ВСЕГДА будет физически измеряться последовательно?
Нет, CSS отказался от этого требования в 2011 году, поскольку большинство все равно проигнорировало его.
https://www.w3.org/Style/Examples/007/units.en.html содержит более подробное объяснение.
Так называемые абсолютные единицы (см, мм, дюймы, pt и pc) означают то же самое в CSS, как и везде, но только если ваше устройство вывода имеет достаточно высокое разрешение. На лазерном принтере 1см должен быть ровно 1 сантиметр. Но на устройствах с низким разрешением, таких как компьютерные экраны, CSS не требует этого. И действительно, результат, как правило, отличается от одного устройства к другому и от одной реализации CSS к другому. Лучше зарезервировать эти устройства для устройств с высоким разрешением и, в частности, для вывода на печать. На экранах компьютеров и портативных устройствах вы, вероятно, не получите того, чего ожидаете.
В прошлом CSS требовал, чтобы реализации правильно отображали абсолютные единицы даже на экранах компьютеров. Но так как число неправильных реализаций превысило число правильных, и ситуация, похоже, не улучшилась, CSS отказался от этого требования в 2011 году. В настоящее время абсолютные единицы должны корректно работать только на печатных материалах и устройствах с высоким разрешением.
CSS не определяет, что означает "высокое разрешение". Но поскольку в настоящее время принтеры начального уровня имеют разрешение 300 точек на дюйм, а высококачественные экраны имеют разрешение 200 точек на дюйм, обрезание, вероятно, находится где-то посередине.