2

The subject says it all. Looking for a (polyfill) code that will reset all the inherited CSS properties on a given element (such as <img>, <a> or <p>).

4

4 回答 4

3

如果您想将所有内容完全重置为浏览器的默认样式,那么现代 CSS 方法是将revert关键字与all属性一起使用:

all: revert;

来自MDN

CSS 关键字回滚级联,以便该revert属性采用在当前样式来源(作者、用户或用户代理)中没有样式时应具有的值。在作者样式表(正常情况)中,出于给定声明的目的,就好像没有作者级别的样式,因此将属性重置为用户代理样式表(或用户样式,如果任何存在)。

警告:它在CSS Cascading and Inheritance Level 4工作草案中定义,因此浏览器支持目前仅限于 Safari。

于 2016-08-16T21:45:36.943 回答
2

您可以做的是创建这些元素之一,但不将其附加到 DOM。然后它不会从您的样式表中接收任何样式。然后,使用window.getComputedStyle,您将获得默认样式的列表。

var a = document.createElement('a');
var s = window.getComputedStyle(a);

myTargetEl.style.color = s.color;  // or, use a loop to do all of them
于 2011-11-14T09:10:42.853 回答
1

可能您可以使用HTML5 boilerplatecss Reset重置所有继承的 CSS 属性。

检查这些文章 http://html5boilerplate.com/

http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

于 2011-11-14T09:10:36.707 回答
1

这听起来像是all属性,遗憾的是除了 Firefox 之外的任何浏览器都没有实现它。

例子:

h2 {
  all: initial; // Will reset any style set for h2 elements
}

请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/all

于 2014-06-17T18:01:39.040 回答