Правда ли, что единица измерения pt ВСЕГДА будет физически измеряться последовательно?

html css retina-display pt

43 просмотра

1 ответ

559 Репутация автора

Допустим, я хочу использовать ptмодуль, чтобы убедиться, что мои HTML-страницы выглядят одинаково на устройстве / браузере / ОС. Насколько я понимаю pt, он должен быть равен 1/72 дюйма на экране.

Codepen

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 будут по-прежнему видеть немного разные физические размеры нашего квадрата.

Автор: jtheis Источник Размещён: 18.07.2016 06:50

Ответы (1)


0 плюса

908 Репутация автора

Правда ли, что единица измерения 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 точек на дюйм, обрезание, вероятно, находится где-то посередине.

Автор: Mateusz Konieczny Размещён: 15.07.2018 09:21
Вопросы из категории :
32x32