是否有CSS属性的默认值列表?(所以我可以在js中为他们创建一个排除数组)

is there a list of default values of css properties ? (so I can make an exclusion array in js for them)

本文关键字:他们 创建 数组 排除 一个 js 我可以 属性 CSS 默认值 列表      更新时间:2023-09-26

所有列出css属性的网站,如MDN或w3schools,都在单独的页面上列出每个css属性。

当我在CSSStyleDeclaration上迭代时,我得到一堆数据,其中90%是默认值。现在我还没有找到另一种方法来检查这些值,而不是去每一页,然后创建我的排除数组,所以当循环遍历对象时,我可以过滤掉未触及的值。

但如果它是一个列表,我可以复制它,这样比手动查看每一页要快得多。

(我假设没有从JS检查的编程方式,如果给定的值是默认的,我几乎可以肯定,如果它说noneautonormal0px它是默认的,但这是不确定的做法)

默认值在建议中定义。

但是不能保证浏览器会遵循这个建议。

规范定义了初始值,即在没有任何样式表或等效的情况下使用的值。默认值,在没有任何作者样式表(= page stylesheet)的情况下使用的值,是依赖于实现的。它们依赖于浏览器(从概念上讲,依赖于浏览器默认样式表)和它们的设置(用户样式表或浏览器设置)。

找出初始值只是原始工作,但您不应该期望它们是默认值。似乎没有任何方法可以通过编程找出默认值。对于特定的浏览器,您可能能够找到它的默认样式表或描述,但它们只会告诉您"出厂默认值"。

如果这只是针对IE,你可能想检查一下runtimeStyle属性

在发现w3规范文档难以阅读后,我创建了一个初始值列表:

var inheritedStyleInitialValues = {
    'azimuth': 'center',
    'border-collapse': 'separate',
    'border-spacing': '0',
    'caption-side': 'top',
    'color': '', 
    'cursor': 'auto',
    'direction': 'ltr',
    'elevation': '',
    'empty-cells': 'show',
    'font-family': '',
    'font-size': 'medium',
    'font-style': 'normal',
    'font-variant': 'normal',
    'font-weight': 'normal',
    'letter-spacing': 'normal',
    'line-height': 'normal',
    'list-style-image': 'none',
    'list-style-position': 'outside',
    'list-style-type': 'disc',
    'orphans': '2',
    'pitch-range': '',
    'pitch': '',
    'quotes': '',
    'richness': '',
    'speak-header': '',
    'speak-numeral': '',
    'speak-punctuation': '',
    'speak': '',
    'speak-rate': '',
    'stress': '',
    'text-align': 'left',
    'text-indent': '0',
    'text-transform': 'none',
    'visibility': 'visible',
    'voice-family': '',
    'volume': '',
    'white-space': 'normal',
    'widows': '2',
    'word-spacing': 'normal'
}

请注意,这些只是后代dom节点从它们的祖先继承的样式(因为这些是我所关心的唯一样式)。那些留白的我要么找不到默认值,要么因浏览器而异。

我把它做成了一个社区wiki,所以请随意添加到这个列表

您可以创建一个具有您正在检查的相同标记的新元素,并将而不是附加到文档中。它将有一个只设置默认值的样式对象,并且可以与所讨论的元素进行比较——但这看起来很愚蠢。

默认值就像样式表中的任何样式分配一样真实——浏览器不会忽略它们,你为什么要忽略它们呢?