2

我的 HTML:<div id="bar" ></div>

我的 CSS :

#bar
{
    border-left-width:150px;
}

我的 JS:

function getStyle(el,styleProp)
{
    if(el.currentStyle)var y=el.currentStyle[styleProp];
    else if(window.getComputedStyle)var y=document.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
    return y;
}

alert(getStyle(document.getElementById("bar"),"border-left-width"));//Outputs 0px

小提琴:http: //jsfiddle.net/4ABhZ/1

我怎样才能得到border-left-width财产?(以我为例,它不起作用(在Firefox上))

4

3 回答 3

2

检查你的border-left-style财产。它设置为none(默认值)。将它设置为类似的东西solid,你很高兴:http: //jsfiddle.net/Paulpro/4ABhZ/4/

于 2012-06-13T16:11:22.880 回答
1

要支持较旧的浏览器,您需要将 hyphenated-css 更改为 camelCase。

您也可以在其他浏览器中使用 camelCase,并直接读取 getComputedStyle 对象的属性。

function getStyle(el, css){
    if(window.getComputedStyle) return getComputedStyle(el, '')[css];
    if(el.currentStyle) return el.currentStyle[css];    
}

alert(getStyle(document.getElementById('bar'),'borderTopWidth'));

注意 - css 定义需要一个样式和一个边框的宽度才能计算出宽度(并且在计算其尺寸时不能将其设置为 display:none ......)

于 2012-06-13T18:09:07.043 回答
-1

使用 jQuery

http://api.jquery.com/category/css/
http://api.jquery.com/css/

这有效:http: //jsfiddle.net/L2ZwD/1

于 2012-06-13T16:05:39.423 回答