Чи може піксель CSS бути дробом?


81

Чи може CSS pxбути дробом? Це дозволено стандартами? І якщо так, чи підтримують його основні браузери?

Давайте підкріпимо відповіді документацією, люди.


@MetalFrog це питання випливає з дискусії на роботі :-)
Кіс К.Баккер

3
Як не дивно, мені нещодавно довелося використовувати дробовий піксель, щоб отримати сортувальну сітку інтерфейсу jQuery для правильного розміщення. Коли поле на заповнювачі було таким самим або на один піксель менше, ніж поле на навколишні елементи, сітка зміщувалася б повсюдно при перетягуванні. Єдиним виправленням (і тим більше для одного браузера!) Було зменшення запасу заповнювача на 0,5 пікселя. Тоді все працювало нормально. Незалежно від того, специфікація це чи ні, в основному педантична, ви повинні робити те, що потрібно робити наприкінці дня.
Кріс Пратт,

Чи існують правила щодо того, як веб-переглядач повинен відображати рядок менше 1px? У мене багато сторінок (документи Word, перетворені в HTML), де межі таблиць мають ширину, що відповідає частці пікселя. Вони відображаються як 1 піксель в IE та firefox, але межа взагалі не видно всередині хрому
Енді

1
Ваше початкове запитання стосовно дробів чи десяткових знаків було? Дріб буде 1/3, тоді як десятковий - 0,33 (повторюється). Математично, різниця є, і якщо щось цікавить технічні особливості математики, це комп’ютери.
Майк,

1
Не дублюються, але пов’язані - обговорення дробових пікселів, які поважаються шляхом рендерингу: stackoverflow.com/questions/4308989/…
Сенді Гіффорд,

Відповіді:


69

Так, ви можете вказати дробові пікселі. Оскільки це частина CSS з першої версії, вона повинна добре підтримуватися будь-яким браузером, який взагалі підтримує CSS.

Довідково: CSS 2.1: 4.3.2 Довжини

"Формат значення довжини (позначається <довжина> у цій специфікації) - це <число> (з десятковою комою або без), за яким слідує ідентифікатор одиниці (наприклад, px, em тощо)."

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


1
@ KeesC.Bakker: Я щойно додав це. :)
Гуффа

6
Проблема полягає в тому , різні браузери по- різному округлити: stackoverflow.com/a/5587820/405015
thirtydot

4
Знайшов цікавий щоденник на цю тему: ejohn.org/blog/sub-pixel-problems-in-css
cboler

12
Для уточнення, дріб був би 1/3, тоді як десятковий - 0,33 (повторюється). Я визнаю, що це частково семантика (не для математики, це не так), але правильна відповідь полягає в тому, що CSS не підтримує дробу або дробові пікселі. Однак він підтримує десяткові значення пікселів.
Майк,

4
@Mike: Термін дріб може використовуватися по-різному, як і термін десятковий, який може вказувати число, що має дробову частину, або число, виражене в базі десять.
Guffa,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.