7

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

我正在尝试根据浏览器窗口减去固定菜单宽度来更改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 -->;
4

3 回答 3

19

使用 ' offsetWidth' 访问菜单的宽度

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

console.log(css);
div1.style.width = css + "px";
于 2012-09-21T05:34:22.217 回答
4

使用getComputedStyle

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

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

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

于 2012-09-21T05:36:27.667 回答
2

试试这个方法:

var width = window.getComputedStyle(document.getElementById("menu"), null).getPropertyValue("width");
于 2012-09-21T05:36:35.483 回答