具体解决方案:
1、单独设置子元素样式,覆盖父元素继承下来的样式。
2、合理设置外层html元素的css样式,避免为后续元素带来重复的设置和不利因素。
3、公用可复用的组件,公用可复用的css样式
可以使用 CSS 的 all 属性。但是目前IE和Edge浏览器还没有任何版本兼容这个属性。所以实际开发中,如果需要兼容IE或者Edge的话,不能使用。同时安卓4.4以及以下,Safari9 的部分版本也不支持。
还是简单的说下用法:
all 属性可以重置选中元素的属性(除了direction和unicode-bidi两个属性)
all 属性在Cascading and Inheritance Level 3 规范中有三个可选的值
initial : 重置所有CSS属性为初始值
inherit : 元素继承所有服元素的CSS属性,即使有些属性原本不是可继承的
unset : 元素继承服元素所有可继承的属性
同时在 Cascading and Inheritance Level 4 规范草案中增加了 revert 值。由于还仅仅是草案,所以这里不细说,详情可以异步下面的链接。
W3C 相关标准内容:
https://www.w3.org/TR/css-cascade-3/#defaulting
https://drafts.csswg.org/css-cascade/#all-shorthand
你好 你的这个问题 我只能做如下解释第一 如果你写的是类样式 比如 li{color:red}
那么所有的li都会 是红色字 不要试图去清除掉 因为继承样式是默认的 无法清除 就好像你无法改变代码的执行顺序默认从上至下一样 除非你加if判断等来控制 所以 答案是无法清除
除非你能够改变代码默认执行顺序 从下至上 解析 不过这是不可能的 因为代码不是你发明的 浏览器解析方式 更加不可能取决于你
第二 我们如何解决此类问题 比如说 我们可以规定区域
假设 2个div 分别上下两区域 分别 id=a id=b
你如果只想要id=a 部分的li 为红色 那么写法如下
#a li{color:red} 那么 在id=b区域中的li则不受影响
我们只能够通过这种 尽量规定使用区域 来解决此类问题
洗完能帮到你 谢谢