有没有在Javascript中设置style.float的跨浏览器方式?

时间:2009-03-03 13:57:54

标签: javascript

通常,如果您需要在JavaScript中设置样式属性,请说出以下内容:

element.style.attribute = "value";

有一些细微的变化,但通常属性名称是HTML属性名称的类似(虽然是camelcased)版本。

我的问题是float属性不起作用。 Float是JavaScript中的关键字,因此style.float会为分页符创建所有JavaScript。我查了MSDN,它说像是这样使用styleFloat:

element.style.styleFloat = "value";

仅适用于IE。 Firefox,Safari,Chrome,Opera - 它们似乎都没有答案。我哪里错了?必须有一个简单的答案。

3 个答案:

答案 0 :(得分:35)

在...中使用cssFloat

element.style.cssFloat = "value";

适用于除 IE 8及更早版本之外的所有,但您始终可以检测到浏览器并切换,或者只是将它们设置为两者。不幸的是,没有办法在所有浏览器中设置一个样式值。

总而言之,每个人都需要设置浮动,只需说:

element.style.styleFloat = "value";
element.style.cssFloat = "value";

应该无处不在。

答案 1 :(得分:0)

更好:

element.style.styleFloat = element.style.cssFloat = "value";

答案 2 :(得分:0)

这是一种功能嗅探方法:

if (typeof elmt.style.cssFloat != "undefined")
    elmt.style.cssFloat = "none";
else
    elmt.style.styleFloat = "none";

但通常我们不需要为此检测而烦恼。我已经使用Chrome测试了user2719099的方法,如下所示:

        elmt.style.cssFloat = elmt.style.styleFloat = "none";
        console.log(elmt.style.cssFloat, elmt.style.styleFloat);

在控制台中结果非常好:

    none none