html - 如何禁用先前定义的 CSS 类中定义的颜色

标签 html css email yahoo

最近在编写代码和 HTML 电子邮件时,我注意到 Yahoo!开始劫持某些链接和关键字,添加 <span class='yshortcuts'>这会改变文本和链接的颜色,这可能会导致一些非常糟糕的渲染问题。

Yahoo! 的“修复” suggested 非常难看(在所有受影响的链接和关键字中添加一个 span)- 远非一个简单的通用解决方案,尤其是当他们将样式应用于看似任意的文本时。

我想知道是否有可能简单地超越他们的类(class),以及如何使用 css 删除 color属性。 (尽管并非所有主要电子邮件平台都支持 <style> block ,但 Yahoo! 支持……以及不支持它的平台,优雅地忽略它。)

有点像 <style> .yshortcuts{color:none;} </style>

我知道 color:none;无效,并且不能普遍使用。

有什么想法吗?

最佳答案

经过挖掘和研究,这似乎是解决问题的最佳方法(在我看来)。

  1. 在电子邮件顶部,添加此样式 block 。这将解决大多数浏览器中的大部分问题。

    <style>
    .yshortcuts{color:inherit;}
    </style>
    
  2. 因为我们希望 IE 用户也快乐,所以在每个 <a> 中插入一个带有颜色样式的跨度。这导致了问题。例如:

    <a href="http://google.com" style="#c912dc"><span style="#c912dc">Google</span></a>
    

这应该在几乎所有情况下修复它。

因为如果您有一个已经编码的文件,手工操作可能会很痛苦,您可以执行正则表达式查找/替换,它应该有助于加快速度(但您的里程可能会有所不同......在 Textmate 中工作):

查找:

(<a[^>]*style=".*color:#(\w{6}).*".*>)(.+)(</a>)

替换:

$1<span style="color:#$2;">$3</span>$4

关于html - 如何禁用先前定义的 CSS 类中定义的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257950/

相关文章:

javascript - 使用表单收集 Javascript 函数的数据?

javascript,dom - 为什么选择的子节点每 2 个编号一次

android - 无法在 Android 中添加电子邮件签名

email - 打开 outlook 的新电子邮件对话框,其中包含来自 powershell 的预填充信息

在设置 CDO.Message 选项时使用的 f(x) = y JScript 习惯用法的 JavaScript 友好替代方案

javascript - 在 <select multiple> 中更改所选选项的颜色

javascript - 允许 HTML 中的 Javascript 函数中使用撇号

css - 如何使用 css 将 xml 元素转换为 url?

javascript - 如何使 JQuery 插件 "Rounded Corners"工作? (或提出更好的选择)

html - 溢出大于 100vh 的 CSS 滚动捕捉点?