Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从css文件获取元素的样式_Javascript_Css_Angularjs - Fatal编程技术网

使用javascript从css文件获取元素的样式

使用javascript从css文件获取元素的样式,javascript,css,angularjs,Javascript,Css,Angularjs,我想用javascript从css文件中获取元素的样式。但是,我只能在javascript上获取输入样式属性的元素。我试着用这种方法来解决这个问题 angular.element(document.getElementById("box")).css("width") 没用。之后,我试着这样做 document.getElementById("box").style 但它不起作用。我如何才能做到这一点?这不是一个角度问题,而是CSS和Javascript如何交互。您需要使用getComput

我想用javascript从css文件中获取元素的样式。但是,我只能在javascript上获取输入样式属性的元素。我试着用这种方法来解决这个问题

angular.element(document.getElementById("box")).css("width")
没用。之后,我试着这样做

document.getElementById("box").style

但它不起作用。我如何才能做到这一点?

这不是一个角度问题,而是CSS和Javascript如何交互。您需要使用
getComputedStyle
来读取CSS文件中定义的样式属性

//这将起作用(因为它是一种内联样式)
log(document.getElementById('a').style.width)
//这不起作用(因为样式是在css中定义的):
log(document.getElementById('b').style.width)
//无论源是什么,getComputedStyle都可以工作:
console.log(window.getComputedStyle(document.getElementById('b')).width)
#b{宽度:100px}
A

B
这不是一个角度问题,而是CSS和Javascript如何交互的问题。您需要使用
getComputedStyle
来读取CSS文件中定义的样式属性

//这将起作用(因为它是一种内联样式)
log(document.getElementById('a').style.width)
//这不起作用(因为样式是在css中定义的):
log(document.getElementById('b').style.width)
//无论源是什么,getComputedStyle都可以工作:
console.log(window.getComputedStyle(document.getElementById('b')).width)
#b{宽度:100px}
A

B
除非设置了css模板规则值,否则无法获取调用样式属性的元素的css模板规则值 *1.在html元素级别使用内联样式;或 *2.style属性已使用JavaScript设置

其作用相同:写入目标元素的内联html样式属性

解决方案是改用计算样式:


如:
getComputedStyle(框,0).width

除非设置了样式属性,否则无法获取调用样式属性的元素的css模板规则值 *1.在html元素级别使用内联样式;或 *2.style属性已使用JavaScript设置

其作用相同:写入目标元素的内联html样式属性

解决方案是改用计算样式:


如:
getComputedStyle(框,0).width

这可能是因为您正在搜索尚未加载到DOM中的元素。尝试将代码添加到angular.element(document.ready)(函数(){document.getElementById(“box”).style});document.getElementById(“box”).style.width是您想要的,我不能使用“ready function”,因为我不使用jquery@这可能是因为您正在搜索尚未加载到DOM中的元素。尝试将代码添加到angular.element(document.ready)(函数(){document.getElementById(“box”).style});document.getElementById(“box”).style.width是您想要的,我不能使用“ready function”,因为我不使用jquery@Pravenalluri