使用php将内联样式转换为css

时间:2011-04-09 20:50:41

标签: php css class inline

我创建了一个类,可以生成多种格式的不同条形码类型,如: - 任何图片格式,GIF,JPG,PNG,SVG等 - 压缩的javascript(JS) - 带内联样式的Html

该类已经过优化,可以通过“仅绘制”黑色信息来尽量减少条形码的输出。

因为条形码的HTML版本可能很大(虽然已经优化了),但我想知道是否有可以将内联样式转换为样式标记的类或函数,例如:

输出(仅几行):

<div id="mybarcode">
<div style="position:absolute;margin-left:26px;width:2px;height:128px;background:#000;"></div>
<div style="position:absolute;margin-left:34px;width:2px;height:128px;background:#000;"></div>
<div style="position:absolute;margin-left:36px;width:2px;height:48px;background:#000;"></div>
......
......

这就是我想要的:

<style>
     #mybarcode div {position:absolute;width:2px;height:128px;background:#000;}
    </style> 
    ....
    ....

    <div id="mybarcode">
    <div style="margin-left:26px;"></div>
    <div style="margin-left:34px;"></div>
    <div style="margin-left:36px;height:48px;">
    ....
    ....

如果发现一个类可以做我想要的反面但是不是我的情况。有没有人知道是否有一个类可以用html做这些事情?将内联样式的其他页面转换为带外部css的html也很有用。

感谢您的回答!亲切的问候。

1 个答案:

答案 0 :(得分:1)

不应该太难。

算法概要:

  • 查看每个元素并提取内联样式规则
  • 确定所有元素共有的样式
  • 将这些样式提取到类下的style标记中(例如common
  • 删除冗余内联样式并将common类添加到元素

您可以使用Simple HTML Dom Parser进行实际的元素操作。 CSS规则本身很容易解析,因此Regexes将是我使用的。特别是在您的情况下,因为您编写了生成HTML的代码,因此您将确切地知道您可能遇到的CSS规则。