好了,我有一个漂亮的网页,它的样式在一个CSS和一切
但是现在我发现了一个问题,我想要一个列表是原始的,不继承任何样式。
我知道我可以这样做,只要给它一个style="(...)"
,这样它就会覆盖继承的样式,但是,有什么指令/技巧/东西可以不这样做吗?
发布于 2012-03-01 20:59:11
CSS Cascading and Inheritance Level 3规范引入了一次重置所有属性的功能。这是通过使用值为initial
或unset
的all
速记属性来实现的,具体取决于您是否需要重置继承的属性。
请注意,这些与浏览器的默认值无关。
火狐27+、Chrome 37+和Opera 24+都有这一功能。
在该特性被广泛实现之前,您可以使用“命名空间”类。例如,要将布局样式与内容样式分开,可以使用像content
这样的类作为所有内容样式的命名空间。
简化示例:
/* 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; }
发布于 2012-03-01 20:04:36
这个问题最好的解决办法是从一开始就避免它。我尽量将contextual (or descendant) selectors保持在最小,并且避免使用标记名作为选择器。相反,我使用类,以便我的html元素(<a>
、<p>
、<ul>
、<span>
等)无论上下文/其父元素是什么,看起来总是没有样式。
在您的情况下,我认为您只能使用inline-style属性或!important
覆盖继承的样式,或者创建一个.reset
类:
.reset { with: auto; height: auto; padding: 0; /* etc */ }
上面提到的所有解决方案都有缺点,所以你需要选择你的战斗。
发布于 2015-07-05 04:31:42
你可以尝试这个http://cleanslatecss.com/,它完全重置了目标元素,它只是css,没有js,你只需要向目标添加一个类,就完成了。
我在其他答案中发现的问题是,没有人使用!important
,所以可能会发生重置不适用于元素的情况,所有事情都是用cleanslate解决的,它会为您做这件事。
https://stackoverflow.com/questions/9515534
复制相似问题