Может ли пиксель CSS быть дробью?

81

Может ли CSS pxбыть дробью? Это разрешено стандартами? И если да, то поддерживают ли его основные браузеры?

Давайте подкрепим ответы документацией, ребята.

Кис К. Баккер
источник
@MetalFrog, этот вопрос возник из обсуждения на работе :-)
Кис К. Баккер
3
По иронии судьбы мне недавно пришлось использовать дробный пиксель, чтобы правильно разметить сортируемую сетку пользовательского интерфейса jQuery. Когда поле заполнителя было таким же или на один пиксель меньше поля окружающих элементов, сетка при перетаскивании перемещалась повсюду. Единственное исправление (и кроссбраузерность!) - это уменьшение поля заполнителя на 0,5 пикселя. Потом все заработало. Независимо от того, является ли это спецификацией или нет, в основном педантично, вы должны делать то, что должны делать в конце дня.
Крис Пратт,
Существуют ли правила о том, как броузер должен отображать строку размером менее 1 пикселя? У меня много страниц (документы Word, преобразованные в HTML), где ширина границ таблицы соответствует доле пикселя. Они отображаются как 1 пиксель в IE и firefox, но граница внутри хрома вообще не видна
Энди
1
Ваш первоначальный вопрос касался дробей или десятичных знаков? Дробь будет 1/3, а десятичная - 0,33 (повторение). С математической точки зрения разница есть, и если кого-то интересует математика, так это компьютеров.
Майк,
1
Не дублируется, но связано - обсуждение дробных пикселей,
Сэнди Гиффорд

Ответы:

69

Да, вы можете указать дробные пиксели. Поскольку он был частью CSS с самой первой версии, он должен хорошо поддерживаться любым браузером, который вообще поддерживает CSS.

Ссылка: CSS 2.1: 4.3.2 Длина

«Формат значения длины (обозначается <length> в этой спецификации) - это <number> (с десятичной точкой или без нее), за которым сразу следует идентификатор единицы (например, px, em и т. Д.)».

Когда элементы отображаются на экране, большинство браузеров естественным образом округляют положение до ближайшего пикселя при использовании уровня масштабирования 100%. На более высоких уровнях масштабирования вы заметите, что распознаются дробные значения пикселей.

Гуффа
источник
1
@ KeesC.Bakker: Я только что добавил это. :)
Guffa
6
Проблема в том, что разные браузеры
работают по-
4
Нашел интересный блог на эту тему: ejohn.org/blog/sub-pixel-problems-in-css
cboler
12
Чтобы уточнить, дробь будет 1/3, а десятичная - 0,33 (повторение). Я признаю, что это отчасти семантика (не для математики, это не так), но правильный ответ заключается в том, что CSS не поддерживает дроби или дробные пиксели. Однако он поддерживает десятичные значения пикселей.
Майк,
4
@Mike: Термин «дробь» может использоваться по-разному, как и термин «десятичная дробь», который может указывать либо число, имеющее дробную часть, либо число, выраженное в десятичной системе счисления.
Guffa