可以't在Firefox中设置element.style.float

Can't set element.style.float in Firefox?

本文关键字:设置 element style float Firefox 可以      更新时间:2023-09-26

我发布了以下javascript代码作为fidd。它非常基本,在IE11和Chrome中运行良好,但FireFox悄悄地放弃了我的float设置。当我使用FireBug检查元素时,它们的样式中都没有设置float

为什么?

在网上冲浪时,我有一种模糊的印象,那就是width需要设置在某个地方,但在哪里?如果这就是问题所在,有没有一种方法可以让我在不知道容器宽度的情况下在firefox中做到这一点?

var titleElem = document.createElement("div");
    titleElem.innerHTML = "Testing";
    titleElem.setAttribute("unselectable", "on");
    titleElem.style.border = "0px transparent";
    titleElem.style.width = "auto";
    titleElem.style.float = "left";
    titleElem.style.whiteSpace = "nowrap";
    titleElem.style.overflow = "hidden";
    titleElem.style.position = "relative";
document.body.appendChild(titleElem);
    rangeElem = document.createElement("div");
    rangeElem.setAttribute("unselectable", "on");
    rangeElem.style.width = "auto";
    rangeElem.style.border = "0px transparent";
    rangeElem.style.float = "right";
    rangeElem.style.whiteSpace = "nowrap";
    rangeElem.style.overflow = "hidden";
    rangeElem.style.position = "relative";
    rangeElem.style.fontSize = "x-small";
    rangeElem.style.paddingRight = "5px";
    rangeElem.className = "rangeDiv";
    rangeElem.innerHTML = "<i>[1234 - 5678]</i>";
document.body.appendChild(rangeElem);

尝试将该行更改为

titleElem.style.setProperty('float', 'left')

或者,

rangeElem.style.cssFloat = 'left'

同样有效。

使用.cssFloat访问该样式属性。

titleElem.style.cssFloat = "left";

显然,这与float是javascript中的保留字有关。