我猜这个问题会被关闭,因为它是一个开放讨论的问题。然而,我仍然想在讨论中添加一些内容。
由于normalize.css(或我所知道的任何重置CSS文件)是作为插件包文件分发的,因此修改它以适应您的需求是没有错的。可以将其与搜索媒体查询的正确断点进行比较。事实是,没有一条单行道可供遵循,它是一个增量:每个人都必须适应自己的项目。这也意味着每个开发人员都必须编写特定于项目的代码。一个项目可能需要第一个断点在480像素处,而另一个项目根本不考虑移动设备,但它确实提供非常高分辨率的显示器。每个项目都是独特的,您的代码应该反映出这一点。
话虽如此,也可以有例外。库、插件和特定代码段可以一遍又一遍地使用,而无需进行任何修改。对于库和插件,在调用库或函数时通过传递参数来进行每个项目的使用。例如,当使用jQuery时,我不会总是在我的脚本文件中编写相同的代码,当然不会。那是因为库只是达到目的的手段,而不是提供功能的独立包。像Modernizr这样的插件(在广义上)则完全是另一回事。那么,CSS重置在这方面算什么呢?大多数人会说它是一个插件,我也同意。但是插件应该被编辑吗?
我认为可以。
以WordPress插件为例。互联网上有很多关于此讨论的主题:它们是否应该被编辑。许多人建议不要这样做。我不会,也永远不会。对于想要为其博客添加功能的简单博主来说,插件本身就足够了。但是,作为Web开发人员,我们可能需要更多选项(或更少,以优化体验或速度)。只要考虑到更新,修改插件就没有任何影响。为什么要这样做呢?
CSS重置也是如此。正如我之前所说,每个项目都有特定的样式表,通常是一个覆盖另一个中的值。但是,像这样的规则有什么好处:
h1 {
font-size: 2em;
margin: 0.67em 0;
}
然后您可以通过自己的规则覆盖它:
h1 {
font-size: 1.8em;
margin: 0 0 0.8em;
line-height: 1.24;
}
这太荒谬了,是不是?我建议编辑normalize.css。
然而...
到目前为止,我写下的所有内容(我承认很多)都是针对单个项目的。但是,如果您经常构建自己的网站,或者如果您有许多子网站与主网站等等,那么应该如何相应地组织您的工作空间(在这种情况下是目录结构)呢?
对于子网站(例如运行在子域上的网站或项目,它们使用相同的ftp源但使用不同的样式指南),我建议使用未经修改的normalizer。通过这样做,每个项目都必须按照在normalize.css中定义的规则进行修改,但它可以防止您在ftp服务器上拥有分散的重复(但不同!因为您已经根据项目进行了编辑)normalize.css文件。您的文件夹结构将如下所示:
- root
-- /index.html
-- /css
--- /normalize.css
-- /project-name-1/
--- /index.html
--- /css
---- /style.css
-- /project-name-2/
--- /index.html
--- /css
---- /style.css
-- /project-name-3/
--- /index.html
--- /css
---- /style.css
这意味着根目录下的
index.html
与所有(子)项目共享同一重置样式(normalize.css,未编辑)。简而言之,在完全独立的个人项目中,可以编辑normalize文件并将其视为基础文件。它是一个很好的指南,但有些东西不适合项目的需求(例如我之前提到的标题声明)。我自己将normalize.css SCSS化并进行了编辑以满足我的需求,并将其用作所有网站的基础文件。只需在某个地方保留一份副本,当你有新项目时:复制它,编辑它,然后使用它。
1:我知道并不是每个人都会同意我的区分。它是基于DOM操作的:例如,jQuery允许功能,即执行函数的可能性。您无法调用jQuery,然后触发操作或操作。例如,Modernizr的基本功能是不同的。当被调用时,它会执行函数并检查浏览器的功能(并向DOM添加类)。