我知道有很多所谓的"css重置",例如.

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

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

因为现在我们有all个类似属性的关键字,我希望我可以使用

* {
  all: initial;
}

or

:root {
  all: initial;
}

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

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

:root, html, body {
  all: initial
}

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

* {
  all: initial
}

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

* {
  all: initial
}

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


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

推荐答案

对于给定的CSS属性,initial重置为初始值是正确的,但请注意CSS属性没有初始值for each element——它们只有property的初始值,这对于应用它的任何和所有元素都是相同的.例如,the color property spec定义了一个初始值,而不是 for each 元素设置的初始值列表.因此,当您将其与all结合使用时,请使用:

* {
  all: initial
}

...您告诉浏览器获取每个元素的每个属性,并将其重置为默认值.例如,display property spec将其初始值定义为inline——因此页面上的every single element将显示为inline.

Css相关问答推荐

如何将表格单元格的最后一个子级与单元格底部对齐?

如何将此 Select 器转换为TailWind类

使用SVG以竖排书写模式创建渐变文本时,文本显示异常

使用普通 CSS 的视口对角线长度

CSS关键帧中使用transform-origin存在问题的解决方案

混合网格自动布局与固定的行列位置

使用 place-content: center 的全宽 CSS 网格项目

CSS Select 器 $parent > $child Select 嵌套列表中的所有
  • 子元素
  • 在 dbc.Container 上方包含横幅 - Dash

    CSS Grid 2 列和半高

    CSS:菜单图标动画

    在同一旋转中以度数变换旋转

    使用css水平+垂直翻转/镜像图像

    你如何调试可打印的 CSS?

  • 元素上的子弹来自哪里?
  • Highcharts 图表选项 backgroundColor:'transparent' 在 IE 8 上显示黑色

    将未知大小的大图像居中在一个较小的 div 中,并隐藏溢出

    如何在 CSS 中延迟 :hover 效果?

    CSS - 悬停穿过元素以激活悬停在被覆盖的元素上

    如何在 React 应用程序中使用 CSS 模块应用全局样式?