在自己所做过的项目中还没有使用过颇为流传的 CSS Reset,就发现了下面这篇文章。
其实有时候不需要去技术跟风,只需了解一下便可。那些东西有一定的道理,但不一定适合。就像 CSS Sprite,用的有感觉了,就知道什么地方该用,什么地方不该用。如果每处都用,那就成了滥用了。
个人在平常项目中用到的最多的也就是下面这个
* {
margin: 0px;
padding: 0px;
}
觉得没有必要用 CSS Reset,个人感觉有点画蛇添足了。
IE 6 没特殊要求,基本上是放弃了。因此几个像素的大小并无太大影响,用户毕竟不可能开着2个以上浏览器同时查看一个页面吧。只要看上去精致,该对齐的能对齐了就 OK 了。
When asked recently about using a CSS reset stylesheet, I readily admitted that I don't use them. I don't use them for my blog or for any project that I work on. Admitting such can raise an eyebrow or two. Reset stylesheets are definitely becoming commonplace — as you'd expect with companies like Yahoo and industry leaders like Eric Meyer actively using them.
So, why haven't I jumped on board?
What is a CSS Reset?
In case you've never heard of such a thing, a CSS Reset is designed to set a number of element styles to a specific baseline that creates consistency across various browsers.
In the beginning
When the idea of a reset style was first introduced, it was very basic. It reset the margin and padding for all elements. The problem with that was it caused havoc with elements that didn't want their margins or padding reset (namely, form elements).
* { margin:0; padding:0; }
From there, people worked on adding to and fine-tuning the reset stylesheet to be more flexible and to reset more styles. The Meyer reset is probably the finest culmination of this effort.
Eric Meyer's Reset
Eric Meyer's reset took the concept of resetting margin and padding and took it to a whole new level, stripping styles from a number of elements, forcing you to think about what you wanted and add them back in. List items would no longer have bullets, headings would no longer be bolded, and most elements would be stripped of their margin and padding, along with some other changes.
Working with Nothing
The problem I've had with these resets is that I then find myself declaring much more than I ever needed to just to get browsers back to rendering things the way I want. As it turns out, I'm perfectly happy with how a number of elements render by default. I like lists to have bullets and strong elements to have bolded text.
And I'm okay if the various browsers show things slightly differently.
I'm okay if one browser displays an H1 a few pixels larger or smaller than other browsers. If one browser defaults to circle bullets and another to squares, that's usually not a problem. If it is, then I create a style that addresses that specific issue. I don't reset it back to zero and then set it again to what I really want.
One of the principles I took away from the Web Standards community was the concept that pixel perfect precision across the various rendering engines was impractical and a remnant of the table-based layouts of yesteryear. With CSS and progressive enhancement, it was okay that things might look a little different from one browser to the next because of variations in what they supported.
Building up
With that said, the idea of developing a base CSS file that defines some common styles that I often want from project to project — like turning off margin and padding for form elements — is a good idea.
We're seeing various CSS frameworks crop up such as Blueprint , YUI and 960.gs . Each breaking the system down only to build it back up again. Each starts with a reset, then adds on typography and a grid system.
Each of those still seem like more than I need, even though none are that large in size. Blueprint is the heaviest at around 13KB uncompressed but also includes lots of extras like styles for error messages and a print stylesheet.
Less is more
One of these days I'll put together my own base CSS or maybe I won't. To date, I haven't felt myself being overly repetitive in the styles that I set; and I haven't thought to myself, "oh, the hours I'd save myself if only I had a reset stylesheet."
So, while I have nothing against CSS reset stylesheets, I simply don't use them personally and I think that's okay.