css javascript样式,宽度不工作在火狐与过渡doctype

eufgjt7s  于 2023-02-01  发布在  Java
关注(0)|答案(3)|浏览(85)

我有一个脚本,它可以在页面上弹出一个小的DIV,如果我删除DOCTYPE,在IE和FF中都可以正常工作,但是当DOCTYPE是XHTML/Transitional时,在Firefox中,宽度不会改变。

this.container.style.visibility = "visible";
alert("this.container.style.width before = " + this.container.style.width)
this.container.style.width = this.width;
alert("this.container.style.width after = " + this.container.style.width); 
this.container.style.height = this.height;

在IE中,以及在没有DOCTYPE的FF中,第一个警报显示0,第二个警报显示320(这是代码中其他地方设置的宽度)
在FF中,将DOCTYPE转换为XHTML/Transitional时,两个警报都显示0。您知道这是怎么回事吗?我认为可能需要显式设置Transitional中DIV的位置,但我不确定。

ws51t4hk

ws51t4hk1#

您是否尝试过设置:

this.container.style.visibility = "visible";
alert("this.container.style.width before = " + this.container.style.width);
this.container.style.width = this.width + 'px';
alert("this.container.style.width after = " + this.container.style.width);
this.container.style.height = this.height + 'px';

//Note the 'px' above

我发现试图设置一个数字的宽度/高度,而没有单位可能会导致问题。

56lgkhnf

56lgkhnf2#

  • 在CSS中使用!important会覆盖上面的JavaScript,宽度也不会改变。

宽度:16.5%!重要;

  • 应改为:

宽度占16.5%;

qmb5sa22

qmb5sa223#

您可以使用:

document.getElementById("td").style.visibility="hidden";
document.getElementById("td").style.display="none";

而不是宽度属性。
真管用!

相关问题