簡體   English   中英

PHP方法從樣式標簽中刪除CSS並應用於每個元素?

[英]PHP method to remove CSS from Style tag and apply to each element?

有誰知道我可以使用或開始使用HTML輸入並刪除<style>標記,但將所有樣式應用於其預期使用的每個元素的PHP方法,代碼段或項目?

輸入示例:

<html>
    <head>
        <style>
            body {
                font-size: 10px;
            }
            td {
                font-size: 8px;
            }
        </style>
    </head>
    <body>
        <!--This is my table with smaller text: -->
        <table>
            <tr><td>this text is:</td><td>8px</td></tr>
        </table>
    </body>
</html>

所需的輸出:

<html>
    <head>
    </head>
    <body style="font-size: 10px;">
    <!-- This is my table with smaller text: -->
        <table>
            <tr><td style="font-size: 8px;">this text is:</td><td style="font-size: 8px;">8px</td></tr>
        </table>
    </body>
</html>

為什么? 我希望我的應用程序包含帶有回復的原始電子郵件,而不會使原始郵件樣式與回復的格式混淆。 我猜這對我來說是前進的方向,因為當您在Outlook中查看答復的來源時,似乎正在使用此方法。

https://github.com/tijsverkoyen/CssToInlineStyles應該可以解決問題。 代碼如下所示:

use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;

$cssToInlineStyles = new CssToInlineStyles();

$css = "body {
            font-size: 10px;
        }
        td {
            font-size: 8px;
        }";
$html = "
    <body>
    <!--This is my table with smaller text: -->
      <table>
        <tr><td>this text is:</td><td>8px</td></tr>
      </table>
    </body>
";
echo $cssToInlineStyles->convert(
    $html,
    $css
);

如果您想使用在線工具,也可以訪問http://premailer.dialect.ca/

您正在尋找的是樣式內襯 ,通常用於HTML電子郵件開發中,這里有一些工具:

根據您的應用程序代碼,您可以找到一些庫來執行此操作……如果您想構建自己的庫……。也許npm軟件包可以為您提供指導。

希望這可以幫助

我正在使用Emogrifier來創建HTML郵件-它對我來說真的很好。 這里是一個鏈接: 霧化器

您可以使用id和class保存CSS代碼,並在需要時隨時在標記中調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM