CSS!important不适用于mpdf

时间:2015-06-23 03:36:29

标签: html css mpdf

我使用mPDF将html文件转换为pdf文件,几乎没问题,但!important属性不起作用。代码如下:

CSS

td .style1 {border-left:2px #000000 solid !important;}
td .style2 {border-left:none;}

HTML:

<table>
    <tr>
        <td class="style1 style2">Something here</td>
    </tr>
</table>

结果是td标签的左边框消失了。我认为原因是style2低于style1而mPDF不知道!important属性。我该如何解决这个问题?

注意:自动生成html和css代码,因此我无法删除style2,因为每次生成css类名都可以更改。

注意2 :边框在由mPDF生成的pdf文件中消失。浏览器中的html边框很好。

5 个答案:

答案 0 :(得分:0)

您不能有两个相同类型的规则请求两个不同的东西。因此,如果无法删除样式2,那么下一步要做的唯一合乎逻辑的事情是在生成样式时创建这样的内联样式:

<table>
   <tr>
      <td class="style1 style2" style="border-left:2px #00000 solid !important;">Something here</td>
   </tr>
</table>

这将完全覆盖样式表并使用您在此处使用的内容。

答案 1 :(得分:0)

你的代码只有问题,颜色代码在style1中缺少一个ZERO(0),Rest很好,所以style1会进入行为。

更改

td .style1 {border-left:2px #00000 solid !important;}

td .style1 {border-left:2px #000000 solid !important;}

由于

答案 2 :(得分:0)

你的CSS会是这样的

td .style1 {border-left:2px #000000 solid !important;}
td .style2 {border-left:none;}

 td .style1 {border-left:2px #000 solid !important;}
    td .style2 {border-left:none;}

颜色代码应为六位数或三位数。请阅读一些有关颜色代码的文章

答案 3 :(得分:0)

尝试为此组合添加更具体的样式:

td.style1, td.style1.style2  {border-left:2px #000000 solid;}

答案 4 :(得分:0)

mPDF在多个类使用方面存在一些问题,例如class =&#34; style1 style2&#34;。 如果可能,将其减少到一个。 对于我的项目,我经常使用内联css来解决这个问题:

<style>
...
</style>

在生成pdf之前,将其与html标题中的修订一起注入。 第二个问题是mPDF在标记/样式定义列表中存在问题:

td.style1, td.style1.style2 ...
不要这样做。

另一种方法是替换多个类。如果您无法更改HTML代码。

$html = str_replace('class="style1 style2"', 'class="style1"', $html);

或另外一个:

$html = str_replace('class="style1 style2"', 'class="style3"', $html);