IE9 не любит голые числа в CSS? - PullRequest
0 голосов
/ 17 августа 2011

Это работает в Chrome, Safari и Firefox, но не в IE9

style='height:100'

IE9 просто игнорирует его.Но это работает:

style='height:100px'

К сожалению, я действительно действительно не хочу прибегать к добавлению «px» ко всем моим значениям.Это делает любые манипуляции (например, умножение ширины на два, добавление к ней 100 и т. Д.) Невероятно хлопотным.Это ожидаемое поведение, и есть ли где-нибудь особый флаг, который я могу установить, чтобы IE9 принимал первый пример?

(я знаю, что встроенные стили обычно считаются невероятно плохими, но у меня есть причина использовать их в любом случае внекоторые особые случаи)

Ответы [ 5 ]

7 голосов
/ 17 августа 2011

style='height:100' может работать в некоторых допустимых браузерах, но на самом деле это недопустимый CSS, поэтому IE имеет полное право отказать в их разборе.

3 голосов
/ 17 августа 2011

Это (width:100) на самом деле не работает ни в одном из этих браузеров из-за недопустимого CSS:

http://jsbin.com/ovewus

<div style="width:100;background:red">test</div>

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

http://jsbin.com/ovewus/2 - width:100 работает!

Намереннонаписание страниц для Quirks Mode вдвойне невероятно плохо, просто не делайте этого.

0 голосов
/ 17 августа 2011

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

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

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

0 голосов
/ 17 августа 2011

Как сказал Gruikya, недопустимо, чтобы CSS имел номера, не являющиеся единицами (если только число не равно 0 или стиль не равен line-height), поэтому я определенно рекомендую добавить правильные единицы.Если вам нужно выполнить математические операции с этими единицами (я полагаю, в Javascript), тогда вы все равно должны использовать parseInt или parseFloat, и они с радостью проигнорируют конечные единицы.

0 голосов
/ 17 августа 2011

Я не вижу здесь «голых» чисел :) http://www.w3.org/TR/CSS21/visudet.html#the-width-property, поскольку 100 может быть px, em ..

"Определяет ширину области содержимого с использованием единицы длины ."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...