如何获取/生成背景颜色有意义的所有HTML元素(tagNames)的列表(具有效果)?
例如,DIV应该在列表中,但LINK不应该。
(我需要这个来优化遍历整个DOM的chrome扩展并计算新的背景颜色值)
答案 0 :(得分:3)
经过多次讨论具体行为实际上是什么之后,我认为已经证明任何元素(包含已制作的元素)都可以设置背景,正如规范中所述。
因此,也许您的Chrome扩展程序应检查元素是否包含display: none
,height: 0
或width: 0
,并按这些条件将其排除在列表中。也就是说,排除隐藏在视口中显示的元素。
根据the spec,所有元素都可以包含background
和background-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