我将要编写一个 PHP 邮件列表系统。理想情况下,我希望模板样式易于管理。在我当前的系统中,我将样式全部硬编码在模板中,如下所示:
<a href="http://blah/blah/blah" style="color: #a8a8a8;">click here</a>
在管理模板的人员决定他们想要更改链接文本的颜色之前,这一切正常。我真正想要的是处理 HTML 和样式定义并使用适当的 HTML 输出 HTML。
我希望的是接受以下输入的东西:
<style type="text/css">
a {
color: #a8a8a8;
}
</style>
<a href="http://blah/blah/blah">click here</a>
...并生成...
<a href="http://blah/blah/blah" style="color: #a8a8a8;">click here</a>
...如果样式表更新,“呈现”的 HTML 将全部反射(reflect)这些变化。
如果这可以与内联 <style></style>
一起使用,那就太好了标签或使用外部 CSS links
.
我这样做是因为我的经验表明,我使用的某些(大多数?全部?)网络邮件客户端似乎不支持样式信息,无论是外部的还是其他方式。如果我在这里遗漏了什么并且有更简单的方法可以做到这一点,我也很想听听这些建议。 :)
编辑 我做了更多查询并发现了另一个 Stackoverflow 问题 discusses CSS Selectors我想我会尝试使用类似 phpQuery 的东西来处理这个问题。
最佳答案
更新:在意识到我误解了您的问题后,我重写了这篇文章。
您可以编写一个 PHP 脚本,将所有样式 block 转换为每个 HTMLElement 的硬编码样式。伪代码可以是:
1. load up an XML parser for the HTML email generated by your mailing list program
2. xpath get all "style" nodes
3. for each node, parse for the id and/or class of the CSS style (you'll need some regexes for these)
4. for each id and/or class found, look up that node by attribute id or class (using xpath) and append to the existing value of the style attribute
关于php - 处理外部 CSS 样式表和注入(inject)内联 CSS 元素的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/720313/