代码之家  ›  专栏  ›  技术社区  ›  john c. j.

全部:初始与使用CSS重置

  •  2
  • john c. j.  · 技术社区  · 3 年前

    我知道有很多所谓的“css重置”,例如。

    但我不明白的是,为什么用更简单的方法似乎是不可能的。

    据我所知 initial 关键字将属性重置为CSS规范中定义为该属性默认值的值。

    从现在起,我们有了 all 属性之类的关键字,我希望我可以使用

    * {
      all: initial;
    }
    
    or
    
    :root {
      all: initial;
    }
    

    而不是所有这些 reset.css s和 normalize.css s、 也就是说,我希望其中一个简短的snipet将帮助我从用户代理样式表中删除添加到网页的样式。

    但它并不像我预期的那样有效。看来

    :root, html, body {
      all: initial
    }
    

    根本不会从用户代理样式表中删除“继承”的样式

    * {
      all: initial
    }
    

    过于激进地删除样式。例如,它使我的 style script 元素可见!我不认为CSS规范说这两个元素应该是可见的。我相信CSS规范说他们应该 看得见的就好像

    * {
    全部:首字母
    }
    

    不是将我的样式重置为CSS规范级别,而是将它们重置为绝对零级别。这不是我想要的。


    谁能解释一下我的理解有什么不对吗?

    1 回复  |  直到 3 年前
        1
  •  2
  •   Alexander Nied    3 年前

    你说得对 initial 重置为给定CSS属性的初始值,但请注意CSS属性没有初始值 对于每个元素 --它们只有一个初始值 所有物 ,对于应用它的任何和所有元素都是相同的。例如, the color property spec 定义了一个初始值,而不是为每个元素设置初始值的列表。所以当你把它和 all ,使用:

    * {
      all: initial
    }
    

    ...您告诉浏览器获取每个元素的每个属性,并将其重置为 财产的 默认值。比如说 display property spec 将其初始值定义为 inline --所以 每一个元素 在您的页面上,将显示为 内联 .