当前位置: 首页 > 面试题库 >

all:unset和all:revert之间有什么区别

盖向荣
2023-03-14
问题内容

根据MDN:

在许多情况下,revert关键字的工作原理与未设置的关键字完全相同。唯一的区别是属性具有由浏览器或用户创建的自定义样式表(在浏览器侧设置)设置的值。

我不了解浏览器和自定义样式表。浏览器和自定义样式表也都可以替换all: unset,对吗?


问题答案:

从MDN:

如果未设置CSS关键字从其父级继承,则将其重置为继承的属性,如果不是,则将其重置为初始值。换句话说,inherit在第一种情况下,其行为类似于initial关键字,在第二种情况下,其行为类似于关键字。

所以,unset要么是inheritinitial

CSS CSS关键字revert将属性的级联值从其当前值恢复为该属性应 具有 的值( 如果当前样式原点未 对当前元素
进行任何更改) 。因此,如果该属性从其父级继承,则将其重置为继承的值,或者重置为由用户代理的样式表(或如果存在的话,由用户样式)建立的默认值。

假设浏览器将默认样式应用于您的元素。使用revert,您将放回那些样式,而unset不会。

例:

p {

  margin: 50px;

}


<p style="margin:revert">

  some text here

</p>

<p style="margin:unset">

  some text here

</p>

在上面的示例中,还原操作将清除50px边距并放回浏览器应用的默认边距。在第二种情况下,未设置只会将边距设置为initial(即0)。

并非所有浏览器都支持还原值:https :
//caniuse.com/#feat=css-revert-value

如果未应用默认样式,revert则其行为与unset

在许多情况下,revert关键字的工作原理与未设置的关键字完全相同。唯一的区别是属性 具有由浏览器或用户创建的自定义样式表
(在浏览器侧设置)设置的值。

all 是所有属性的简写,因此上述相同的逻辑适用于每个属性。

更多示例:

p {

  margin: 50px;

  border:1px solid blue;

}



.box {

  color: red;

  display:unset;

}



p {

  color:unset; /* I will be inherit so I will keep the red color*/

  display:inline-block;

}


<div class="box">

  <p style="margin:revert;border:revert;display:revert;">

    some "block" text that should have no border and default browser margin

  </p>

  <p style="margin:unset;border:unset;display:unset;">

    some "inline" text that should have no border and no margin

  </p>

</div>


 类似资料:
  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 问题内容: 今天,我按照一些说明在Linux中安装软件。有一个脚本需要首先运行。它设置一些环境变量。 指令告诉我要执行,但是我执行错误了。因此未设置环境。最后,我注意到了这一点并继续进行。 我想知道这两种调用脚本方法的区别。我对Linux完全陌生,所以请尽可能详细。 问题答案: 运行脚本,将启动一个新的运行脚本的外壳。新的外壳程序不会影响启动脚本的父外壳程序。 是的简写形式,它将在当前shell中

  • 问题内容: 我刚开始使用Spring。我遇到了很多教程。我看到使用更多的例子比。我查看了Spring文档,但无法弄清楚使用其中一个的好处。有人可以提供一些解释吗? 问题答案: 是的便捷子类。 JavaDoc描述了一些添加的属性,这些属性在某些情况下可能有用: UrlBasedViewResolver的便利子类,它支持InternalResourceView(即Servlet和JSP)以及诸如Jst

  • 问题内容: 我刚刚看到了包含标签的CSS代码。我看着MDN看看是什么,但我真的不明白。 有人可以解释它是如何工作的吗? 它会在我们通过CSS选择之前创建DOM元素吗? 问题答案: 根据这些文档,它们是等效的: 唯一的区别是CSS3中使用了双冒号,而单冒号是旧版本。 推理: CSS 3中引入了:: before表示法,以便在伪类和伪元素之间建立区别。浏览器还接受:在CSS 2中引入的表示法。

  • 问题内容: 以下哪个更好? 要么 我知道的唯一区别是,当“ a”为null时,第一个返回false,而第二个抛出异常。除此之外,它们是否总是给出相同的结果? 问题答案: 使用时,你需要B在编译时知道类。使用时可以是动态的,并且可以在运行时更改。

  • 问题内容: 从文档中,我们可以了解有关该功能的以下信息: 处理所有待处理的事件,调用事件回调,完成所有待处理的几何图形管理,根据需要重新绘制窗口小部件,并调用所有待处理的空闲任务。此方法应谨慎使用,因为如果从错误的位置(例如,从事件回调内部,或者从可以以任何方式从事件回调中调用的函数等)调用,则可能导致真正令人讨厌的竞争状况。 )。如有疑问,请改用。 另一方面,关于此功能: 调用所有待处理的空闲任