Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将内联样式转换为css_Php_Css_Class_Inline - Fatal编程技术网

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

使用php将内联样式转换为css,php,css,class,inline,Php,Css,Class,Inline,我制作了一个类,可以生成多种格式的不同条形码类型,如: -任何图片格式、GIF、JPG、PNG、SVG等 -压缩javascript(JS) -带内联样式的Html 该类已经过优化,通过仅“绘制”黑色信息,尽可能减少条形码的输出 由于条形码的HTML版本可能如此巨大(尽管它已经过优化),我想知道是否有一个类或函数可以将内联样式转换为样式标记,例如: 输出为(仅几行): ...... ...... 这就是我想要的: <style> #mybarcode div {posi

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

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

由于条形码的HTML版本可能如此巨大(尽管它已经过优化),我想知道是否有一个类或函数可以将内联样式转换为样式标记,例如:

输出为(仅几行):


......
......
这就是我想要的:

<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;">
    ....
    ....

#mybarcode div{位置:绝对;宽度:2px;高度:128px;背景:#000;}
....
....
....
....
如果发现一个类可以做我想要的相反的事情,但这不是我的情况。有人知道是否有一个类可以用html做这样的事情吗?将具有内联样式的其他页面转换为具有外部css的html也很有用

谢谢你的回答!亲切的问候。

不应该太难

算法概述:

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

可以使用执行实际的元素操作。CSS规则本身很容易解析,所以我会使用正则表达式。特别是在您的情况下,因为您编写了生成HTML的代码,所以您可以确切地知道可能遇到的CSS规则。

感谢您的快速回答,但如果找到CSS to inline styles类,我需要一个通用的解决方案(但仅以相反的方式)。我想知道这样的课程是否存在,以避免我开始重新发明轮子。我也知道你建议的DOM解析器,我的CMS就是建立在它之上的,它很棒。但我还有一个函数suggettextbetween(),它可以同时获取所有样式。但是,正如我刚才所说,如果已经有了解决方案,我想知道。我找不到一个预先制定的解决方案。首先,这应该作为条形码类的HTML生成部分来完成,而不是作为以后应用的部分。您可以控制标记的生成。您的语句完全正确,但由于格式众多,该类已经非常复杂。将这种优化集成到代码中并不容易,之后更容易实现。内容将被缓存,因此它只运行一次。什么类会做相反的操作?
<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;">
    ....
    ....