javascript - 检索 CSSStyleDeclaration 原生 Javascript 对象的键

标签 javascript css dom

我想检索可以设置为 dom 对象的所有可用键/样式的列表:CSSStyleDeclaration 对象。 如果我在 chrome 中运行这行代码

console.log(Object.keys(document.querySelector('.class1').style));

我得到了预期的结果:

(517) ["alignContent", "alignItems", "alignSelf", "alignmentBaseline", "all", "animation", "animationDelay", "animationDirection", "animationDuration", "animationFillMode", "animationIterationCount", "animationName", "animationPlayState", "animationTimingFunction", "backdropFilter", "backfaceVisibility", "background", "backgroundAttachment", "backgroundBlendMode", "backgroundClip", "backgroundColor", "backgroundImage", "backgroundOrigin", "backgroundPosition", "backgroundPositionX", "backgroundPositionY", "backgroundRepeat", "backgroundRepeatX", "backgroundRepeatY", "backgroundSize", "baselineShift", "blockSize", "border", "borderBlockEnd", "borderBlockEndColor", "borderBlockEndStyle", "borderBlockEndWidth", "borderBlockStart", "borderBlockStartColor", "borderBlockStartStyle", "borderBlockStartWidth", "borderBottom", "borderBottomColor", "borderBottomLeftRadius", "borderBottomRightRadius", "borderBottomStyle", "borderBottomWidth", "borderCollapse", "borderColor", "borderImage", "borderImageOutset", "borderImageRepeat", "borderImageSlice", "borderImageSource", "borderImageWidth", "borderInlineEnd", "borderInlineEndColor", "borderInlineEndStyle", "borderInlineEndWidth", "borderInlineStart", "borderInlineStartColor", "borderInlineStartStyle", "borderInlineStartWidth", "borderLeft", "borderLeftColor", "borderLeftStyle", "borderLeftWidth", "borderRadius", "borderRight", "borderRightColor", "borderRightStyle", "borderRightWidth", "borderSpacing", "borderStyle", "borderTop", "borderTopColor", "borderTopLeftRadius", "borderTopRightRadius", "borderTopStyle", "borderTopWidth", "borderWidth", "bottom", "boxShadow", "boxSizing", "breakAfter", "breakBefore", "breakInside", "bufferedRendering", "captionSide", "caretColor", "clear", "clip", "clipPath", "clipRule", "color", "colorInterpolation", "colorInterpolationFilters", "colorRendering", "columnCount", "columnFill", …]

但是在 Firefox 中我得到一个空数组,而在 Edge 中我得到一个只有 1 个元素的数组

[object Array]: ["WebkitAnimation"]
   0: "WebkitAnimation"
   length: 1

我的一行代码有什么问题?

最佳答案

Window.getComputedStyle() 方法返回一个包含元素所有 CSS 属性值的对象。使用以下内容

let compStyles = window.getComputedStyle(document.querySelector('.class1'));
console.log(Object.values(compStyles));

关于javascript - 检索 CSSStyleDeclaration 原生 Javascript 对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59905726/

相关文章:

javascript - 使用 JavaScript 和 jQuery 开发复杂网页的最佳实践

javascript - 仅显示段落的前四行,后跟省略号

javascript - 无法使用 jquery 删除占位符

javascript - 在 Javascript 中,如何合并对象数组?

javascript - 如何隐藏另一个集合中存在的选择选项

javascript - 如何使用 javascript 删除元素但不删除其内容?

javascript - 从函数引用的 div 中访问一个 div

javascript - 使用 javascript document.myElementsName 选择 DOM 元素

javascript - 选择要序列化的属性

javascript - 如何将 DOM 元素附加到 JavaScript 中的空元素中?