【问题标题】:Excluding one css property value only?仅排除一个 CSS 属性值?
【发布时间】:2013-01-07 17:00:53
【问题描述】:

有没有办法只禁用一个 CSS 属性值?例如,使用属性“text-decoration”,可能的值包括 none、underline、overline、line-through、blink 和 inherit。

我想允许 text-decoration 的所有值,但所有元素上的下划线除外。

我正在使用的页面是动态生成的,并且可以包含来自整个网络的内容——因此不可能针对任何特定元素。使用文本装饰“无”当然有效,但它也会吹走所有其他值:(

建议?

【问题讨论】:

  • 你更喜欢怎么做,带有 JS 的客户端还是服务器端?
  • @PassKit:客户端 - 这是一个浏览器插件。

标签: html css text-decorations


【解决方案1】:

仅使用 CSS 和 HTML 是无法做到这一点的。您需要类似 property selector 之类的东西来定位页面上的所有元素,并将 text-decoration 设置为下划线,但现在不存在这样的东西。

但是,如果 JavaScript 是一个选项,那么您可以做到这一点。你可以先determine the style of the elements,然后,如果需要,set the style 去掉下划线。

【讨论】:

  • Javascript 确实是一种选择——我会研究一下。谢谢!
【解决方案2】:

由于 Javascript 和 JQuery 中没有属性选择器之类的东西,因此您应该获取所有可能的元素,然后检查它们的 css 属性并在需要时进行更改。像这样的东西: $('*').each(function() { if ($(this).css('PROPERTY') == 'FORBIDDEN-VALUE') { $(this).css('PROPERTY', 'REPLACE-VALUE'); } });

【讨论】:

  • 感谢代码块!我会玩这个。我想知道这会对性能产生什么影响......
  • 这取决于您在文档中处理的元素数量。也许在您的情况下,您可以向 JQuery 选择器添加一些代码来过滤它们。这将大大提高性能。
  • 好主意...我会调查的。干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 2021-01-20
相关资源
最近更新 更多