当前位置:  开发笔记 > 前端 > 正文

取消CSS声明

如何解决《取消CSS声明》经验,为你挑选了2个好方法。

是否有可能有一个基本上"撤消"先前规则的CSS规则?

一个例子:

some text more text other text

让我们说这是这个CSS:

blockquote {
    color: red;
}

...但我希望保持正常的文字颜色(你可能不一定知道).

基本上,有没有办法做这样的事情?

blockquote em {
    color: inherit-from-blockquote's-parent
}

编辑:实际上,我试图让这个工作中的代码实际上是一个比较复杂一点.也许这会更好地解释它:

This text should be *some unknown colour*
  • This text should be BLUE
    • Same as outside the UL
    • Same as outside the UL
ul { color: blue; } ul ul { color: ???; }

Tomalak.. 8

仅使用CSS,您无法引用父母的父级.

您可以做的是尝试混合使用特定的CSS选择器和标记,以便显示所需的效果.


  This is the enclosing element.
  
  • This is the first level UL, direct child of TD
    • This is the second level UL
    • Same as outside the UL

CSS:

td > ul
  color: blue; /* this affects the "direct child" UL only */
}

您可以将样式继承的深度限制为一个级别,因此内部UL在颜色方面没有样式,并从封闭文本中获取其设置.

阅读有关CSS子选择器的更多信息,并注意旧版浏览器可能有它们的怪癖.


编辑

对于Internet Explorer 6,子选择器可以在某种程度上伪造.使用前请务必系好安全带(条件评论等):

td ul {
  color: expression(/TD/.test(this.parentNode.tagName)? "blue" : "black");
}

这假定为"黑色"作为外部颜色.如果这个颜色值可能会发生变化,那我就不幸了.除非您可以定义expression()能够从上下文中获取颜色值(例如,检查父元素的其他属性).或者你放弃并使用JS框架,正如其他人已经建议的那样.

无需使用JS的懦弱解决方案当然是:

td ul.first {
  color: blue;
}

但我明白为什么你要避免这种情况.



1> Tomalak..:

仅使用CSS,您无法引用父母的父级.

您可以做的是尝试混合使用特定的CSS选择器和标记,以便显示所需的效果.


  This is the enclosing element.
  
  • This is the first level UL, direct child of TD
    • This is the second level UL
    • Same as outside the UL

CSS:

td > ul
  color: blue; /* this affects the "direct child" UL only */
}

您可以将样式继承的深度限制为一个级别,因此内部UL在颜色方面没有样式,并从封闭文本中获取其设置.

阅读有关CSS子选择器的更多信息,并注意旧版浏览器可能有它们的怪癖.


编辑

对于Internet Explorer 6,子选择器可以在某种程度上伪造.使用前请务必系好安全带(条件评论等):

td ul {
  color: expression(/TD/.test(this.parentNode.tagName)? "blue" : "black");
}

这假定为"黑色"作为外部颜色.如果这个颜色值可能会发生变化,那我就不幸了.除非您可以定义expression()能够从上下文中获取颜色值(例如,检查父元素的其他属性).或者你放弃并使用JS框架,正如其他人已经建议的那样.

无需使用JS的懦弱解决方案当然是:

td ul.first {
  color: blue;
}

但我明白为什么你要避免这种情况.



2> Kon..:

使用此选项可确保继承覆盖可能设置颜色的其他内容:

blockquote em {
    color: inherit !important;
}

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有