Mar*_*tuc 5 html css legacy cross-browser backwards-compatibility
我必须构建的一些遗留代码,让我感觉全局CSS重置的缺点.
我有旧的foo.css开头
* {margin:0; padding:0;}
Run Code Online (Sandbox Code Playgroud)
我曾经把它复制到一个不同的文件bar.css,调整它我的需要(与CSS重置),并使用它只替换foo.css我正在编写的代码.我这样做并不担心与网站旧版部分的向后兼容性.
现在这非常麻烦:对于全局变化,我必须记住修改这两个文件.所以现在我bar.css正在扩展foo.css,从:
@import url("style.css");
Run Code Online (Sandbox Code Playgroud)
问题是现在我还继承了CSS重置.
是否有任何方法(†)将某些元素(标题,列表等)的margin&padding属性恢复为默认值 - 重置之前应用的值?
(†)除了手动将每个属性设置回其初始值之外,如CSS规范中所定义.
有一个建议的值初始值,用于将属性设置为其初始值,而不查找显式值.但它仍处于草案阶段,很难在任何浏览器中实现.
而且,这甚至可能不是你想要达到的目标.如果我理解正确,您可能希望将h2元素的顶部和底部边距设置为浏览器默认值.我认为在CSS中甚至没有任何提议的方法.规范未定义浏览器默认值.例如,margin属性的初始值为0.默认情况下,标题具有顶部和底部边距的原因是浏览器至少在概念上应用了浏览器样式表.CSS规范建议使用默认的浏览器样式表,但不要求一个,浏览器可能(实际上)偏离建议.
在实践中,在给定情况下的最佳镜头是检查CSS 2.1规范的附录D并使用其中给出的值.对于像边距这样的东西,这通常会产生使用浏览器默认值的效果.