我知道CSS复位是什么,但最近我听说过这个叫Normalize.cssNormalize.css和Reset CSS有什么区别?
是什么Normalize.css和Reset CSS之间的差别新的东西?
规范化CSS和重置CSS有什么区别?
这仅仅是CSS Reset的新时髦词吗?
我知道CSS复位是什么,但最近我听说过这个叫Normalize.cssNormalize.css和Reset CSS有什么区别?
是什么Normalize.css和Reset CSS之间的差别新的东西?
规范化CSS和重置CSS有什么区别?
这仅仅是CSS Reset的新时髦词吗?
我在normalize.css上工作。
的主要区别是:
Normalize.css保留使用默认值,而不是 “unstyling” 的一切。例如,像sup
或sub
这样的元素在包含normalize.css(并且实际上变得更健壮)之后“正常工作”,而在包含reset.css之后,它们在视觉上与普通文本没有区别。所以,normalize.css并没有在你身上强加一个视觉起点(同质化)。这可能不符合每个人的口味。最好的做法是对两者进行试验,并根据您的偏好查看哪些凝胶。
Normalize.css更正了reset.css超出范围的一些常见错误。它具有比重置范围更广的范围。CSS,并且还提供了像常见的问题的错误修正:对于HTML5元素,缺乏font
继承由形式元素的显示设置,校正font-size
渲染为pre
,SVG溢出IE9,并在IOS的button
造型错误。
Normalize.css不会弄乱你的开发工具。使用reset.css时常见的问题是浏览器CSS调试工具中显示的大型继承链。由于有针对性的风格,这对normalize.css来说不是这样的问题。
Normalize.css是更加模块化。该项目被分解为相对独立的部分,如果您知道这些部分永远不会被您的网站所需,那么您可以轻松地删除部分(如表单规范化)。
Normalize.css有更好的文档。 normalize.css代码在内部以及在GitHub Wiki中更全面地记录。这意味着你可以找出每一行代码在做什么,为什么包含它,浏览器之间有什么区别,更容易运行你自己的测试。该项目旨在帮助教育人们如何默认浏览器呈现元素,并使他们更容易参与提交改进。
我写的更详细的关于这方面的文章about normalize.css
从描述中可以看出,它试图使用户代理的默认样式在所有浏览器中保持一致,而不是像重置一样去除所有默认样式。
保留有用的默认值,不像许多CSS重置。
所以最好是使用Normalize css over Reset? –
@Jitendra Vyas - no。这些工具是不同的,不是彼此更好或更差。选择一个能够帮助你解决你最好的问题的人。 – Quentin
我不得不认为规范化*比重置要好。这将导致更少的CSS通过线路传输,更好地使用UA默认值,并且更好地理解元素是如何显示的。 –
的主要区别在于:
CSS重置旨在删除所有内置浏览器的造型。像H1-6,p,strong,em等标准元素看起来完全一样,完全没有装饰。你应该自己添加所有装饰品。
Normalize CSS旨在使跨浏览器的内置浏览器样式一致。诸如H1-6之类的元素将在浏览器中以一致的方式显示为粗体,大小等等。然后,您应该只添加差异您的设计需要的装饰。
如果你的设计一)遵循排版等等,并B) Normalize.css适用于您的目标受众,然后使用,而不是一个CSS复位Normalize.CSS会让自己常用惯例CSS写得更小更快。
+1请详细描述最后一段的情景 –
@Jitendra Vyas:您的前端开发人员 - 实际上只有一种方法:阅读备受好评的Normalize.CSS代码,并决定它是否适合您是否需要。 https://github.com/necolas/normalize.css/blob/master/normalize.css –
另一个注意事项:Normalize.css旨在尽可能不显眼,这使得开发人员可以更轻松地编写自己的代码,而无需针对特定冲突。 – zzzzBov
Normalize.css的主要是一组样式,基于它的作者以为会很好看,并使它看起来对面一致浏览器。重置基本上从元素剥离样式,所以你可以更好地控制一切的样式。
我使用两者。
一些样式来自重置,一些来自Normalize.css。例如,从Normalize.css中,有一种风格可以确保所有输入元素具有相同的字体,而不会发生(在文本输入和文本区之间)。重置没有这样的风格,所以输入具有不同的字体,这通常不是想要的。
所以bascially,使用两个CSS文件做一个更好的工作 '均衡' 的一切;)
的问候!
这是一个很好的,实用的答案。它不一定是一个或另一个。采取你想要从每个。我喜欢完全重置,但是Normalizer提供了一些很好的功能,可以在ontop上运行。 – Undistraction
@ricmetalster,所以你必须重新编写自己的CSS来结合reset.css和normalize.css的功能吗? – ayjay
如果你想同时使用,你可以先列出“重置”,然后“正常化”,然后在上面添加你的样式? – Craig
第一个reset.css
是您可以使用的最差的库,因为它会在为0
分配边距填充和其他属性的值之后,删除HTML的标准结构并显示您以书面形式编写的所有内容。因此,例如,您会发现<H1>
将与<H6>
相同。
在另一方面Normalize.css
使用标准的结构,还修复了几乎所有现有的在它的错误。例如,它修复了从一个浏览器向另一个浏览器显示表单的问题。 Normalize通过修改此功能来修复此问题,以便您的元素在所有浏览器上显示相同。
取决于您的使用案例。考虑你的例子,如果我需要为我的项目修改所有标题标签的字体样式,我将不会使用任何默认值,对吗? 一个人不应该因为在自己的项目中找不到用途而将库标记为“最差”。 – gdebojyoti
重置的主要目的之一是解决浏览器应用样式中出现的问题,这非常有用。我也认为它不应该被视为一个图书馆。 –
@gdebojyoti有一些用例,但我很少希望所有标题的大小相同,无论它们各自的字体样式如何。 –
有时,最好的解决方案是使用两者。有时候,它既不使用也不使用。有时候,这是使用其中一种。如果您想要所有样式(包括所有浏览器中的边距和填充重置),请使用reset.css。然后自己应用所有装饰和造型。如果您只是喜欢内置的样式,但想要更多的跨浏览器同步性,即标准化,请使用normalize.css。但是,如果您选择使用reset.css和normalize.css,请先链接reset.css样式表,然后再立即链接normalize.css样式表(立即)。有时候并不总是一个更好的问题,但是何时使用哪一个与什么时候使用两个时间以及什么时候使用两个都没有关系。恕我直言。
很多时候,你不要把它们留在零(当使用重置时),所以你实际上编写的代码更少。如果你确实想要将某些值清零,那么这种风格就与它所指向的元素相结合,并且应该能够减轻调试的负担。 – necolas
而这是一个重要的问题,许多重置,其中包括一切事实,也放慢了浏览器。 – Rob
而且这也是重置的优势 - 规范化错失大小问题,如下所示:https://github.com/yahoo/pure/issues/395 –