Javascript 如何获得从一个元素到另一个元素的复制样式宽度
我知道这听起来很简单,但我得到的是不起作用的Javascript 如何获得从一个元素到另一个元素的复制样式宽度,javascript,width,Javascript,Width,我知道这听起来很简单,但我得到的是不起作用的 <style type="text/css">#graphelement{width:800px;height:300px;}</style> <div id="graphlabel2">Right Axis Label</div> <div id="graphelement"></div> <script type="text/javascript"> var g
<style type="text/css">#graphelement{width:800px;height:300px;}</style>
<div id="graphlabel2">Right Axis Label</div>
<div id="graphelement"></div>
<script type="text/javascript">
var graphwidth = document.getElementById('graphelement').style.width;
document.getElementById('graphlabel2').style.width = graphwidth;
</script>
#图形元素{宽度:800px;高度:300px;}
右轴标签
var graphwidth=document.getElementById('grapheElement').style.width;
document.getElementById('graphlabel2')。style.width=graphwidth;
我的问题是“graphwidth”总是空的。如果我只获取元素的宽度(element.width),我会在graphwidth中得到“undefined”。上面的所有代码都在body标记中,甚至是初始样式标记
这是一个更大脚本的一部分,但如果我能从and元素中获得一个宽度并将其设置为另一个,我可以计算出其余部分。我的总体目标是:我有一个宽度以内联样式设置的元素。如果在手持设备上查看页面(即屏幕宽度小于graphwidth),则我希望将元素和关联元素的宽度设置为screen.width。但是,我似乎在检索和设置element.style.width时遇到问题。使用
document.getElementById
,您无法获取css值,只能设置它们
我想这就是您要寻找的。
样式。元素的宽度是空的,除非您通过javascript分配它。相反,您需要的是computedStyle
。这是一些
window.getComputedStyle(document.getElementById('grapheElement').width)
请注意,旧版本的IE使用。(似乎只有IE9+支持getComputedStyle)
document.getElementById('grapheElement').currentStyle.width
这里有一个演示如何支持这两种功能。我认为您需要使用
.style属性用于获取直接放置在上的样式
元素。它不会根据样式表计算样式
请参阅:
我认为您可以通过媒体查询而不是JS@aurel他在css中设置宽度,如果你把css放在标题中。但通常,如果未定义,则表示该元素未加载到页面上。然而,在他的例子中,js位于元素的下方,我尝试使用内联stype,它确实可以工作,但你并不真的想要这样
var gLabel = document.getElementById("graphelement");
var style = window.getComputedStyle(gLabel , null);
document.getElementById('graphlabel2').style.width = style.getPropertyValue("height");