php - 处理外部 CSS 样式表和注入(inject)内联 CSS 元素的最佳方式是什么?

标签 php css

我将要编写一个 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/

相关文章:

php - 在 PHP 中禁用 include_path

php - Yii2 elasticsearch setAttributes()不起作用

Javascript 和 Html 加载两次(表单字段)我如何知道它属于哪个元素?

html - 为 H1 和 H2 标签添加 margin-left

CSS 宽度 100vw 只延伸到一侧

PHP DOM : Get all text values

PHP设置动态数组索引

html - 使flash成为html中的背景(全屏)

CSS 菜单下拉消失

html - html中使用 Font Awesome 的单个图标声音播放器