2010-02-16 5 views
8

Могу ли я изменить блок по умолчанию от пикселя до мм? Например, я хочу, чтобы перемещать элемент слева и сверху, чтобы быть в мм, а не в пикселе?Установки по умолчанию CSS

ответ

11

Задание единиц CSS является обязательным условием для ненулевых значений. Браузеры могут попытаться угадать, что вы имели в виду, но это все равно будет сломанной таблицей стилей в соответствии со стандартом.

I.e. в CSS2 нет «единицы по умолчанию», просто браузер может попытаться помочь вам, хотя он может просто игнорировать ваш оператор, который не указывает единицы как недопустимые.

+1

@OP: например, CSS не имеет * единиц измерения по умолчанию, поэтому нет, вы не можете их изменить. –

-2

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

+2

Это невозможно, но ваши причины являются фиктивными. (Они объясняют, почему использование mm - плохая идея, но не то, почему вы не можете иметь безразмерную длину, как mm) – Quentin

1

Нет, вы не можете изменить единицы по умолчанию, но это не должно быть слишком много, чтобы просто поставить единицы там:

#foo { 
    left: 22mm; 
    top: 20mm; 
} 

Вы должны всегда указывать единицу, тем не менее, так как он необходим и браузеры могут интерпретировать безразмерные значения по-разному.

0

AFAIK, если не указано явное устройство (например, «em» или «%»), тогда «px» объединяется в значение, и нет способа переопределить это поведение по умолчанию.

+0

Только в режиме quirks. – Quentin

1

Как нет «единицы по умолчанию», и вам нужно предоставить устройство при позиционировании элемента, вы можете просто использовать «мм» вместо «px».

11

Нет единицы измерения по умолчанию. Спецификация CSS требует, чтобы длина (отличная от нуля), которая отсутствовала в модуле, рассматривалась как ошибка (и поэтому игнорировалась).

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

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

+1

@Ilian, этот должен быть принят ответ. Спасибо, Квентин –

Смежные вопросы