哪些HTML标签“支持”背景颜色

时间:2017-10-10 00:12:13

标签: javascript html css html5 css3

如何获取/生成背景颜色有意义的所有HTML元素(tagNames)的列表(具有效果)?

例如,DIV应该在列表中,但LINK不应该。

(我需要这个来优化遍历整个DOM的chrome扩展并计算新的背景颜色值)

2 个答案:

答案 0 :(得分:3)

更新

经过多次讨论具体行为实际上是什么之后,我认为已经证明任何元素(包含已制作的元素)都可以设置背景,正如规范中所述。

因此,也许您的Chrome扩展程序应检查元素是否包含display: noneheight: 0width: 0,并按这些条件将其排除在列表中。也就是说,排除隐藏在视口中显示的元素。

根据the spec,所有元素都可以包含backgroundbackground-color。但是,<body>中不允许使用某些元素,因此不应在网页上显示。我不知道这些(或为什么!)只是不渲染背景或颜色,但扩展名可以跳过这些。

<base>
<link>
<meta>
<noscript>
<script>
<style>
<template>
<title>

可能会有更多元素通常不会显示,但这些元素来自HTML5 spec的元数据部分。

答案 1 :(得分:1)

规范说所有元素。但你必须考虑是否有意义:)

https://www.w3.org/TR/CSS2/colors.html#background-properties

Value:      <color> | transparent | inherit
Initial:    transparent
Applies to:     all elements
Inherited:      no
Percentages:    N/A
Media:      visual
Computed value:     as specified