4

У меня есть простой фрагмент кода: JQuery IE10 поведение CSS ('фон-позиции')

$('div').css('background-position', '0px 0px'); 
alert($('div').css('background-position')); 

И я ожидаю, что я буду получать '0px 0px', но я получил «0% 0% "в IE10. Также я заметил, что jquery .css возвращает результаты с процентом всегда, когда он равен 0px, например «0px 50px» => «0% 50px» в IE10.

Это ошибка jQuery? или это ошибка IE10?

Вы могли try it on jsbin

Спасибо!

+0

Похоже, что изменение в IE 10 не обязательно будет называть его ошибкой :), но возвращает строки ввода в IE 9. – ryadavilli

+0

Поведение IE9 как и ожидалось. IE10 - нет. И похоже, что это проблема jQuery, потому что она работает нормально, когда мы делаем это без jQuery: http://jsbin.com/emacow/5/edit – ValeriiVasin

ответ

0

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

Например, если вы придаете цвет #ffffff, браузер может изменить его на rgb(255,255,255) внутри страны. Аналогично, длина 0px может быть преобразована только в 0.

НИКОГДА не полагайтесь на свойство стиля, именно то, что вы ему сказали. Если вам нужно знать, используйте переменную, чтобы отслеживать ее, или используйте что-то вроде класса для изменения стилей по мере необходимости.

+0

Хорошо, я хочу выполнить тестирование замены фонового положения на моем счетчике. Как я могу это сделать, если не могу полагаться на свойство .css? – ValeriiVasin

+0

Ну, положение фона не просто изменится само по себе. Независимо от того, какой код меняет положение фона, вы можете настроить его также на вызов функции. –

+0

Да, хорошая точка. Я мог бы проверить эту переменную и не полагаться на .css(); Но в любом случае это странно: http://jsbin.com/emacow/5/edit :) Он работает нормально даже в IE10. – ValeriiVasin