CSS Reset 当中需要注意的继承和样式覆盖问题

CSS Reset 是一个常用的前端技术,可以使得页面的样式在不同浏览器中表现一致。在使用 CSS Reset 的时候,要注意继承和样式覆盖问题,否则可能会导致样式的不一致或者不如预期。

继承问题

在 CSS Reset 中,我们通常会使用通配符选择器 {} 或者 * {} 来重置默认样式,并将所有元素的样式都归零或者重新设置。

例如以下代码,将使得页面中所有元素的 marginpadding 都被设置为 0

然而,这样的重置样式有可能会让不想被设置的元素继承了这个样式。例如以下代码:

我们在给 div 标签重置样式的时候,往往也会把内嵌的 p 标签的样式也清空,这并不是我们想要的效果。此时就需要针对不同的元素设置不同的重置样式。

例如以下代码,我们只对 bodyh1 元素进行了样式重置:

这样就可以保证其他元素不被意外地重置样式。

样式覆盖问题

在使用 CSS Reset 的时候,要注意对于某些特殊的样式,我们可能需要对其进行覆盖,以达到更好的设计效果。

例如以下代码,我们使用了一个针对链接元素的 CSS Reset:

这个 Reset 可以防止链接出现下划线和不受控制的颜色。但是有时候我们需要更好的设计效果,例如将链接的颜色设置为蓝色,悬浮时有下划线。

此时,我们可以针对具体的元素对它的样式进行重新设置,例如:

这样可以保证我们保持 CSS Reset 的同时,又可以满足设计要求。

总结

使用 CSS Reset 可以帮助我们在不同浏览器中保持统一的样式表现,但是在使用的时候,要注意继承和样式覆盖问题。根据实际需求,进行有针对性的样式重置和重新设置,才能达到更好的样式效果。

示例代码

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653273207d4982a6eb5317bc


纠错
反馈