当前位置: 首页 > 面试题库 >

通过Javascript获取/设置CSS属性值:问题

梁丘翔
2023-03-14
问题内容

我有些不清楚的地方:

var myDiv = document.getElementById("myDiv");
var computedStyle = window.getComputedStyle(myDiv);

1)如果只有一种颜色,并且每侧相同,就不可能直接获得div的全局边框颜色:

computedStyle.getPropertyValue("border-color");

而不是做:

computedStyle.getPropertyValue("border-left-color");

要么

computedStyle.getPropertyValue("border-right-color");

要么

computedStyle.getPropertyValue("border-top-color");

2)在CSS文件中具有样式属性时,只能通过getComputedStyle方法访问它们,而不能通过样式属性(如内联定义的样式属性)或通过div中的样式属性来访问,对吗?

myDiv.style.getPropertyValue("border-left-color");

这是行不通的。

3)如果要设置样式属性,则必须使用元素的样式属性,是否无法使用计算出的样式对象?

computedStyle.setProperty("border-color", "yellowgreen", null);

我认为使用style属性是“老方法”,就像使用内联样式属性或使用object.style.property =“
value”在Javascript中设置样式属性一样。

谢谢。


问题答案:

1)如果只有一种颜色,并且每侧相同,就不可能直接获得div的全局边框颜色:

是的,仅使用速记属性名称就可以获取计算样式。我尝试了您在jsfiddle上共享的示例,并且computeStyle.getPropertyValue(“border-color”)确实返回(265,65,0),这是预期的橙色的rgb代码。

2)在CSS文件中具有样式属性时,只能通过getComputedStyle方法访问它们,而不能通过样式属性(如内联定义的样式属性)或通过div中的样式属性来访问,对吗?

是。在应用外部,内部和内联样式规则之后,getComputedStyle返回浏览器最终的计算样式值。.style属性仅引用元素的内联样式。

3)如果要设置样式属性,则必须使用元素的样式属性,是否无法使用计算出的样式对象?

否。根据此文档,getComputedStyle返回一个CSSStyleDeclaration对象,该对象是只读的。



 类似资料:
  • 问题内容: 我正在尝试读取一个自定义(非标准)CSS属性,该属性在样式表(而非内联样式属性)中设置并获取其值。以这个CSS为例: 我已经设法通过IE7中的currentStyle属性获取其值: 但是currentStyle是特定于MS的。所以我在Firefox 3和Safari 3中尝试了getComputedStyle(): …并且返回未定义。 有谁知道跨浏览器的方法来获取自定义CSS属性值?

  • 问题内容: 如何通过jQuery从CSS类访问属性?我有一个CSS类,如: 我需要对一个对象进行彩色动画处理: 这样我就可以从CSS 更改为,并且动画将按照CSS进行工作。 一种方法是在类中放置一个不可见的元素,然后获取要在动画中使用的元素的颜色,但是我想这是非常非常糟糕的做法。 有什么建议么? 问题答案: 我编写了一个小函数,该函数遍历文档上的样式表以查找匹配的选择器,然后查找样式。 需要注意的

  • 问题内容: 我创建了以下内容… 我现在将如何设置CSS属性,例如? 问题答案: 用途:

  • 本文向大家介绍C#通过属性名字符串获取、设置对象属性值操作示例,包括了C#通过属性名字符串获取、设置对象属性值操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#通过属性名字符串获取、设置对象属性值操作.分享给大家供大家参考,具体如下: #通过反射获取对象属性值并设置属性值 0、定义一个类 1、通过属性名(字符串)获取对象属性值 2、通过属性名(字符串)设置对象属性值 #获取对象的

  • 在 PowerShell 中,如何通过指定对象的名称(字符串)来获取对象的属性值?我想要类似这样的东西: 是否有类似于“获取属性名称”的内容?