Подтвердить что ты не робот

Есть ли способ перекрестного браузера установки 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 - ни у кого из них нет ответа. Где я иду не так? Должен быть простой ответ на этот вопрос.

4b9b3361

Ответ 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