请解释我Eric Meyer的CSS重置

时间:2011-10-24 19:27:43

标签: css css-reset

首先,我想告诉你为什么我问这个问题。我通常更新写得不好而没有重置的项目。我想提高项目的质量,因此似乎绝对需要应用CSS重置。

我不希望每次更改内容时都在每个浏览器中进行像素完美测试,我不想完全重写所有CSS。

所以:

当我写作时:

*{
    margin:0; 
    padding:0;
    border:0;
}

我知道会遇到什么麻烦:<p>会松动填充,而<input>, <select>, etc.会松开填充和边框。所以我必须手动指定它们。

此代码更难理解:

*{
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

我对此完全感到困惑:

body {
    line-height: 1;
}

2 个答案:

答案 0 :(得分:9)

*{
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

除非另有说明,否则默认情况下,将文档中的所有元素设置为从父元素继承字体和字体大小,这可以防止用户代理样式表应用具有较少特定规则的字体样式。

vertical-align: baseline;是避免用户代理规则的另一个普遍规则,这些规则并不总是将此(我相信)预期的默认行为应用于所有元素。

以下简要介绍一下这一点:demo。在演示中,尝试将规则设置为middle而不是文本顶部。

body {
    line-height: 1;
}

这是一样的。如果你不熟悉行高,那很简单。您可能在没有意识到的情况下处理过它:有时它似乎是一个边际问题,实际上,元素的线高超出了您的预期。当您将字体放入与其他字体具有非常不同的x高度的设计中时,通常会发生这种情况。

如果您不理解其功能,请将一些虚拟文本放入文档并开始播放。在不同情况下制作好的排版非常有用(必不可少)。

似乎你不清楚css属性以及它们如何影响元素。您越了解这一点,您就越能利用重置。由于一些原因,没有重置真正适合所有。例如,您可能没有使用vertical-align可能最终不匹配的任何元素。您可能在大型重置中有规则,适用于您甚至没有的元素。

与网页设计中的任何内容一样,如果您不理解它,实践经验会教会您很多。

答案 1 :(得分:3)

通过表单上的简单输入控件查看这个小提琴:

http://jsfiddle.net/KXYHw/

切换重置并查看输入字体和字体大小的变化。