首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否取消继承(重置)特定元素的CSS样式?

是否取消继承(重置)特定元素的CSS样式?
EN

Stack Overflow用户
提问于 2012-03-01 19:42:48
回答 3查看 24.8K关注 0票数 20

好了,我有一个漂亮的网页,它的样式在一个CSS和一切

但是现在我发现了一个问题,我想要一个列表是原始的,不继承任何样式。

我知道我可以这样做,只要给它一个style="(...)",这样它就会覆盖继承的样式,但是,有什么指令/技巧/东西可以不这样做吗?

EN

回答 3

Stack Overflow用户

发布于 2012-03-01 20:59:11

CSS Cascading and Inheritance Level 3规范引入了一次重置所有属性的功能。这是通过使用值为initialunsetall速记属性来实现的,具体取决于您是否需要重置继承的属性。

请注意,这些与浏览器的默认值无关。

火狐27+、Chrome 37+和Opera 24+都有这一功能。

在该特性被广泛实现之前,您可以使用“命名空间”类。例如,要将布局样式与内容样式分开,可以使用像content这样的类作为所有内容样式的命名空间。

简化示例:

代码语言:javascript
复制
/* Global styles for UL lists. */
UL {list-style: none; margin: 0; padding: 0; }

/* Styles for UL lists inside content block. */
.content UL {list-style: disc; margin: 1em 0 1em 35px; }
票数 10
EN

Stack Overflow用户

发布于 2012-03-01 20:04:36

这个问题最好的解决办法是从一开始就避免它。我尽量将contextual (or descendant) selectors保持在最小,并且避免使用标记名作为选择器。相反,我使用类,以便我的html元素(<a><p><ul><span>等)无论上下文/其父元素是什么,看起来总是没有样式。

在您的情况下,我认为您只能使用inline-style属性或!important覆盖继承的样式,或者创建一个.reset类:

代码语言:javascript
复制
.reset { with: auto; height: auto; padding: 0; /* etc */ }

上面提到的所有解决方案都有缺点,所以你需要选择你的战斗。

票数 3
EN

Stack Overflow用户

发布于 2015-07-05 04:31:42

你可以尝试这个http://cleanslatecss.com/,它完全重置了目标元素,它只是css,没有js,你只需要向目标添加一个类,就完成了。

我在其他答案中发现的问题是,没有人使用!important,所以可能会发生重置不适用于元素的情况,所有事情都是用cleanslate解决的,它会为您做这件事。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9515534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档