二十年来,网页和前端开发领域一直使用CSS重置(为简便起见,此处包含“重启”和“标准化”)。我说“大约”是因为Tantek Çelik似乎在2004年启动了这一切(你也可以在那里找到我本人),但其他作者可能更早地使用了类似的技术。
CSS重置基于三个前提:
显而易见的是,如果——或者一旦——所有用户代理都以相同的方式处理CSS,则不需要CSS重置。
同样显而易见的是,如果差异不适用,则也不需要CSS重置。例如,表单样式差异在无表单网站上并不重要。
而且——许多论点都对此进行了不必要的争论——这也意味着,如果差异不被认为足够重要,则也不需要CSS重置。
我相信,在过去的20年中,我们看到并非所有作者都关注用户代理之间的样式差异是否会影响他们,以及这些差异是否真的重要。
但是,还有其他问题。
对于CSS重置用户而言,现实情况是他们觉得需要使用CSS重置。CSS重置用户可能(也可能)不会那样认为,他们要么因为必须使用CSS重置,要么因为觉得使用CSS重置更安全而使用它。然而,从实际角度来看,使用CSS重置也是他们现实的一部分。
CSS重置用户忽略的是另一种现实,即不使用CSS重置的开发人员和网站所有者的现实。
这可以用前面概述的前提来解释,但它有两个原因值得关注。
虽然前提允许调和矛盾,但问题仍然存在:在我们关于CSS重置的讨论中,似乎没有人承认存在无需重置即可工作的网站——这从根本上挑战并反驳了CSS“原教旨主义者”认为它们总是需要的观点。这根本既不正确,也没有帮助。
这就是全部吗?不:
CSS重置已成为一种商品形式。有很多CSS重置(搜索显示的种类比我能找到的最佳集合还要多),它们被烘焙到一些HTML/CSS甚至JS框架中。
这使得开发人员很容易忘记前提,并假设普遍需要CSS重置。
因此,我们很久以前就能观察到,人们停止质疑他们使用重置,即使它们可能没有效果。†
与发布无效和虚构HTML的效果类似,所有这些都在蚕食前端开发的工艺。
我们的选择是什么?
首先,我们需要明确CSS重置背后的前提,并将这些前提纳入我们的讨论中。这将使讨论中的热度降低,并做出更好的决策。
其次,我们需要进行现实检查。有很多网站和应用程序没有使用CSS重置,并且在所有用户代理中都能正常工作。这是我们现实的一部分,鉴于某些CSS重置的性能和维护占用空间,这是一个值得关注的现实。
第三,我们需要互相挑战,也许更重要的是,挑战自己。寻求便利似乎很自然,但重要的是要明确后果——便利很容易导致自满、教条,最终导致无知。让我们的开发人员生活变得稍微困难一些是有用的。
当我们做到这一切时,我们应该到达20年前就能到达的地方——一个我们非常有选择地使用定制重置的地方,最有可能仅在高技术复杂性或开发人员资历差异很大的环境中使用。但这只是推测,关于我们现在没有的现状。
*标题故意留下不完整。
非常感谢Miriam Suzanne和Jad Joubran审核这篇文章。
* 如果您认为在形式逻辑中,矛盾允许得出任何结论,那么矛盾尤其引人入胜。
† 这就是丢失的“CSS重置第一规则”的原因:在使用重置设置网站后,至少要测试一次不使用重置的情况。
以上是CSS重置矛盾的详细内容。更多信息请关注PHP中文网其他相关文章!