Есть ли способ перекрестного браузера установки style.float в Javascript?
Обычно, если вам нужно установить атрибут стиля в JavaScript, вы скажете что-то вроде:
element.style.attribute = "value";
Есть небольшие вариации, но обычно имя атрибута является аналогичной, хотя и измененной версией имени атрибута HTML.
Проблема для меня в том, что атрибут float не работает. Float - это ключевое слово в JavaScript, поэтому style.float делает все JavaScript для разрыва страницы. Я посмотрел в MSDN, и он сказал, что использует styleFloat так:
element.style.styleFloat = "value";
Это работает только в IE. Firefox, Safari, Chrome, Opera - ни у кого из них нет ответа. Где я иду не так? Должен быть простой ответ на этот вопрос.
Ответы
Ответ 1
Использовать cssFloat как в...
element.style.cssFloat = "value";
Это работает во всем, кроме IE 8 и старше, но вы всегда можете обнаружить браузер и переключиться, или просто установить их оба. К сожалению, нет способа установить только одно значение стиля для работы во всех браузерах.
Итак, чтобы подвести итог, всем вам нужно установить float, просто скажите:
element.style.styleFloat = "value";
element.style.cssFloat = "value";
Это должно работать везде.
Ответ 2
лучше:
element.style.styleFloat = element.style.cssFloat = "value";
Ответ 3
Это подход с использованием функции sniff:
if (typeof elmt.style.cssFloat != "undefined")
elmt.style.cssFloat = "none";
else
elmt.style.styleFloat = "none";
Но обычно нам не нужно беспокоиться об этом обнаружении. Я проверил user2719099 подход с Chrome, как показано ниже:
elmt.style.cssFloat = elmt.style.styleFloat = "none";
console.log(elmt.style.cssFloat, elmt.style.styleFloat);
И результат довольно хорош в консоли:
none none