Является ли пиксель CSS действительно абсолютной единицей? То есть 1 дюйм = 96px истинно?

Официальная документация W3C гласит:

1 px = 1/96th of 1 in

В моем предыдущем 18,5-дюймовом экране screen.width был 1367 px, а ширина экрана в дюймах была 14 inches. По формуле W3C:

14 * 96 px = 1344 px

Формула W3C отклоняется на 20/14 px per inch. Поскольку отклонение слишком низкое, а 1 inch на моем экране было 97.4 px, я принял формулу W3C и считал, что пиксель CSS равен absolute unit of measure, что означает, что он всегда равен 0.75 pt (физическому модулю),

На этой неделе я купил 21,5-дюймовый полноэкранный экран с шириной 19 inches и screen.width - 1920 px. Итак, теперь 1 inch на моем экране:

1920/19 ~ 101 px

Не только это, мой экран друга составляет 24 дюйма и имеет такое же разрешение 1920 x 1080 пикселей. Оба 24 дюйма и 21,5 дюйма не могут соответствовать одному и тому же количеству пикселей CSS.

Итак, теперь на моем экране пиксели CSS не являются абсолютной единицей измерения. И на моем экране все относительно меньше. Даже это, теперь меня обманывают мои размеры шрифта. Когда я нахожу 16 пикселей как минимальный читаемый шрифт на моем экране, он на самом деле больше на меньших экранах. Потому что 16 px на моем экране физически одинакова в сантиметрах как 14px в сантиметрах на моем предыдущем меньшем экране. Я неправильно проектирую свои веб-сайты, и я больше не являюсь хорошим разработчиком интерфейсов.

Итак, вопрос:

  • Является ли пиксель CSS действительно абсолютной единицей? То есть 1 дюйм = 96 px истинно?

Ответы

Ответ 1

Как указано ниже, часть CSS Values ​​and Units Module, которую вы уже связали, существует две различные реализации, которые могут быть применяется с CSS:

Для устройства CSS эти размеры привязаны либо к

я. связывая физические единицы с их физическими измерениями, или
II. связывая пиксельный блок с опорным пикселем.

Это следует отметить:

Если якорный блок является пиксельным блоком, физические единицы могут не соответствовать их физическим измерениям. Альтернативно, если якорный блок представляет собой физическую единицу, пиксельный блок может не отображаться на целый ряд пикселей устройства.

И, наконец, он заключает:

Референтный пиксель - это угол зрения одного пикселя на устройстве с плотностью пикселей 96dpi и расстоянием от считывателя длины плеч. Следовательно, для номинальной длины руки 28 дюймов угол зрения составляет около 0,02113 градусов. Для чтения при длине оружия 1px соответствует примерно 0,26 мм (1/96 дюйма).

Это означает, что пиксельный блок является абсолютной длиной, но его длина может изменяться в зависимости от того, применяет ли устройство реализацию я или реализацию ii из первой части, которую я цитировал здесь.

Абсолютная длина, определенная модулем значений CSS и единиц, представляет собой просто длину, которая привязана к некоторому физическому измерению. Физическим измерением будет либо их фактическая физическая длина, либо длина, выведенная опорным пикселем.

В том же разделе конкретного пользователя также говорится:

Для печатных носителей и аналогичных устройств с высоким разрешением анкерный блок должен быть одним из стандартных физических единиц (дюймы, сантиметры и т.д.). Для устройств с более низким разрешением и устройств с необычным расстоянием просмотра вместо этого рекомендуется, чтобы якорный блок был пиксельным блоком. Для таких устройств рекомендуется, чтобы блок пикселей относятся к целому числу пикселей устройства, которые наилучшим образом аппроксимирующей опорного пикселя.

96px не всегда будет равным 1 реальному дюйму.

Ответ 2

Нет, px - относительная единица. Поскольку размер пикселей различен для разных размеров экрана, они (возможно, W3C) устанавливают стандарт для px как относительную единицу.

Ответ 3

Блок пикселя Css не обязательно является физическим измерением пикселей (в моем ответе я адресую css px для экранов и не печатаю)

Для устройства CSS эти измерения либо привязаны (i), связывая физические единицы с их физическими измерениями, либо (ii) связывая пиксельный блок с опорным пикселем.

В приведенном выше объяснении опорный пиксель объясняется следующим образом

Контрольный пиксель представляет собой угол зрения одного пикселя на устройстве с плотностью пикселей 96dpi и расстоянием от считывателя длины руки. Следовательно, для номинальной длины руки 28 дюймов угол зрения составляет около 0,021 дюйма. Для считывания с длиной руки 1px соответствует примерно 0,26 мм (1/96 дюйма).

больше объяснений здесь

Для простого примера можно взять iphone

Phy px 750 X 1334

CSS px 375 X 667

Как вы можете видеть, физические измерения px полностью отличаются от Css px. Соотношение между фактическим физическим пикселем и пикселем css называется отношением пикселей, которое определяется на основе угла обзора, расстояния, от которого оно просматривается, и разрешения экрана.

В конце концов поставщик оборудования имеет этот набор в зависимости от вышеупомянутых аспектов.

Вот ссылка в список устройств с phy px, css px и их соотношением пикселей.

Цель всего этого состоит в том, чтобы иметь более последовательное отображение с помощью различного оборудования.

И, наконец, как указывает документация из w3.org:

Обратите внимание, что это определение единицы пикселя и физических единиц отличается от предыдущих версий CSS. В частности, в предыдущих версиях CSS блок пикселей и физические единицы не были связаны с фиксированным соотношением: физические единицы были всегда связаны с их физическими измерениями в то время как блок пикселей будет варьироваться в наибольшей степени соответствовать опорному пикселю. (Это изменение было сделано, потому что слишком много существующего контента основывается на предположении 96dpi, и нарушение этого предположения нарушает содержание.)

В более ранних версиях Css пиксель был в значительной степени основан на эталонном пикселе, который был основан в предположении его всегда 96dpi.Here вместо CSS точки и PHY точки связаны соотношением пикселей.

Надеюсь, что это поможет.