Javascript css:如何访问元素未使用的值?
我有一个DIV,它从一个单独样式表中的CSS类获取其高度。但在Javascript中,这种高度有时会改变。我可以直接从样式表中读取CSS高度而不创建新元素吗?不,您不能从CSS中读取任何属性Javascript css:如何访问元素未使用的值?,javascript,css,Javascript,Css,我有一个DIV,它从一个单独样式表中的CSS类获取其高度。但在Javascript中,这种高度有时会改变。我可以直接从样式表中读取CSS高度而不创建新元素吗?不,您不能从CSS中读取任何属性 您可以创建一些后端API,允许您直接从JavaScript更改CSS文件,而不是在CSS文件中更改高度,而不是将样式应用于元素。如果高度更改是由已知原因引起的,则这是可能的 首先,保存当前内联高度/类名。然后,重置“类/高度”属性。然后,使用该方法读取当前高度。最后,恢复类/高度属性。假设不必删除类名,因为
您可以创建一些后端API,允许您直接从JavaScript更改CSS文件,而不是在CSS文件中更改高度,而不是将样式应用于元素。如果高度更改是由已知原因引起的,则这是可能的 首先,保存当前内联高度/类名。然后,重置“类/高度”属性。然后,使用该方法读取当前高度。最后,恢复类/高度属性。假设不必删除类名,因为只有通过设置内联
height
属性才能更改高度。然后:
function getCSSheight(elem) {
var style = window.getComputedStyle(elem, null);
return style.getPropertyValue("height"); //Returns 222px;
// Optionally: Use parseFloat to convert the `22px` to `22`.
}
您可以这样做:
var myDiv = $("#myId");
alert('initial height from css is: ' + myDiv.css("height"));
myDiv.css("height","50px");
alert('height modified by js is: ' + myDiv.css("height"));
// store modified height value
var height = myDiv.css("height");
// set height to an invalid value
myDiv.css("height","");
alert('height is now retrieved from css again: ' + myDiv.css("height"));
// restore height value
myDiv.css("height",height);
我在jsfiddle.net上创建了一个示例,您可以查看它。如果我正确解释了这一点,他会问如何使用JavaScript读取样式表中声明的样式属性,而不是现有元素的计算样式(可能已被另一个脚本更改)。您是指服务器端吗?我正在创建一个简单的游戏,可以离线运行(人们可以在线玩,也可以购买文件并在本地运行),因此服务器代码不是一个选项。这是否意味着我必须重置高度,即使只有几分之一秒?我的DIV对象位于固定大小屏幕的底部附近。我降低了它们的高度,以避免强制调整屏幕大小。即使临时调整到全高也会导致问题。谢谢。看起来您正在创建一个临时元素,然后读取它的属性-所以直接从样式表中读取是不可能的?这个示例不是创建一个新元素;它首先保存计算出的高度值,重置元素的高度样式,以便接受css值并将该值恢复为修改前的值。为什么不创建一个新元素?因为这个解决方案很可能会在执行过程中对显示进行一些更改,这从用户体验的角度来看是不好的。我想避免创建新元素,因为当我想从样式表中读取一个值时,更改DOM的效率很低。但看起来我不得不这么做。我无法快速调整原始元素的大小:它是游戏中的一个角色,当它的脚离开屏幕时,我会缩小DIV,否则页面会调整大小,看起来会出错。我没有衡量创建新DOM元素的性能,而是衡量我的“本能”告诉我,使用单个类创建单个div元素在客户端不会花费太多。但是,当然,您可能需要衡量性能并确保它不会成为问题。谢谢。被标记为最佳答案。