获取CSS中定义的CSS元素的宽度

时间:2012-09-21 05:29:09

标签: javascript css styles width

我无法获得CSS中定义的元素的宽度。我想出了如何使用Javascript获取CSS规则,但我无法访问宽度。 菜单是我使用 em 在CSS中定义的固定宽度。

我正在尝试根据浏览器窗口减去固定的菜单宽度来更改 div1 的宽度。

注意:我已尝试使用style.width,但它在控制台中返回一个空行。

jsfiddle:http://jsfiddle.net/kj6pQ/

var div1 = document.createElement('div'), 
css = getMatchedCSSRules(document.getElementById('menu'));

console.log(css); //works but dont' konw how to access width

div1.style.width = window.innerWidth - <!-- menu width -->;

3 个答案:

答案 0 :(得分:15)

使用“offsetWidth”访问菜单的宽度

var div1 = document.createElement('div'), 
css = document.getElementById('menu').offsetWidth;

console.log(css);
div1.style.width = css + "px";

答案 1 :(得分:4)

使用getComputedStyle

var css = document.getElementById('menu');

console.log(window.getComputedStyle(css).width);​

http://jsfiddle.net/kj6pQ/6/

答案 2 :(得分:2)

尝试这种方式:

var width = window.getComputedStyle(document.getElementById("menu"), null).getPropertyValue("width");