问题描述:
已对项目中html标签默认样式做清除操作。如对ul,ol,li{list-style:none}
开发过程中ol,ul,li样式不生效,检查发现是重置样式造成。而后需要清除已设置样式,采用!important效果不佳。
搜索查询发现一篇好文章写了几种方法删除css样式,其中的unset解决了问题。
本文搬运文中几种方法,方便下回阅读使用。
原文指路
一、使用inherit值
在 CSS 中,我们可以使用 inherit 值来从父元素继承样式。如果我们想要删除一个元素的样式并使用其父元素的样式,可以将元素的样式设置为 inherit。
例如:想要删除一个按钮的颜色
button { color: inherit; }
这将使按钮从其父元素继承颜色样式。
二、 使用 unset 值
在 CSS3 中,新增了一个 unset 值,它可以将元素的样式设置为默认值。
例如:想要删除一个元素的所有样式
p { all: unset; }
这将删除段落的所有样式,并将其设置为默认状态。
三、使用 !important 规则
CSS 中,!important 规则可以用于强制将样式应用于元素,可以覆盖其他样式。如果我们想要删除一个元素的样式,可以使用 !important 规则并将其设置为 none。
例如:想要删除一个 div 元素的边框样式
div { border: none !important; }
这将删除 div 元素的边框样式,即使已经定义了其他边框样式。
四、使用指定的属性
在某些情况下,我们可能只想删除元素的某个属性,而不是其所有样式。为此,我们可以使用该属性并将其值设置为默认值。
例如:想要删除一个链接的下划线样式
a { text-decoration: none; }
这将删除链接的下划线样式,但不会影响其他样式。