2011-07-22 45 views
0

我使用的一段代码在JS为: -风格属性在Firefox

span_1.style.width = '30%' 

input_1.style.width = '40%'; 

td_1.style.cursor = 'hand'; 

其中span_1input_1td_1spaninputtd对象,RESP。

所有在Firefox?任何建议都没有工作...

+0

你能向我们展示如何声明并找到你的变量/ DOMElements? – TJHeuvel

+0

btw。 '光标:hand'是一个传统的风格,而不是支持多种浏览器,使用'光标:pointer'代替 – Andris

+0

你能否提供一些更多的代码方面? HTML,JS,CSS。或者创建一个jsfiddle? – ChristopheCVB

回答

0

有些浏览器把一个ID的所有元素作为属性在window对象,这样就可以直接访问它们,但是这是不是一个Web标准。使用getElementById方法来访问元素:

document.getElementById('span_1').style.width = '30%'; 

document.getElementById('input_1').style.width = '40%'; 

document.getElementById('td_1').style.cursor = 'pointer'; 
1

不太清楚,但我猜你必须将其显示为“块”第一,因为跨度是内联元素。另外,父元素应该有一个宽度集。

所以在CSS:显示:块;

//编辑:

display:inline-block;

可能会更好。

0

第一:为cursorhand值是微软的专有实现什么其他浏览器调用pointer.我认为你必须回去IE5找到一个IE是不支持pointer所以用它来代替。

如果你想支持那些不明白pointer然后更改.className代替,并有预定义的风格浏览器:

.foo { 
    cursor: hand; 
    cursor: pointer; 
} 

二:width属性并不适用于display: inline元素(其中<span>是默认)。 IE可能会在怪癖模式下得到这个错误,这会导致许多不一致。确保你在standards mode

如果使用的跨度,然后将其更改到块元件,或样式的显示,所以它不是内联(例如display: inline-block;)。

第三:你不指定如何获得参考各变量的元素。 IE倾向于挥霍全局变量来匹配任何给定元素的id。这是非标准的,不能被依赖。确保你得到适当的参考。例如

var span_1 = document.getElementById('span_1'); 
+0

我在JS中动态创建三个跨度,并将它们作为td的子对象(也是动态创建的,并且给出了宽度)。因此,我想给它们不同的宽度即。 40%,22%,38%。 – Mike

+0

哦,不,不是另一个“让我们用HTML描绘一个聊天”脚本?虽然解决方案在上面。 – Quentin

+0

我称之为span_1的是span对象。 – Mike