1
CSSとHTMLの外部変数から電子メールを作成し、インラインスタイルとして結合しています。しかし、それらを組み合わせる前に、私はCSSを変更したい。PHP変数またはDOMDocumentのCSS要素を変更する
以下では、ボディからパディングとマージンを削除したいと考えています。どのように私はこれを行う必要がありますか?preg_matchまたは何か「クリーナー」がありますか?
$css = "body {
background: #fff;
color: #000;
padding: 0;
margin: 0;
font: 83%/1.4 verdana,sans-serif;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a, a:link, a:visited, a:hover, a:active {
background: transparent;
text-decoration: none;
cursor: pointer;
}";
また、それはそうかもしれないのDOMDocumentが私を助けることができる私は以下で、このようにCSS(その後、インラインスタイリング)を取得していますことを言及する価値は十分だ - それはきれいようだが、私はどこに知りません開始。
use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;
$dom = new DOMDocument();
@$dom->loadHTML($row['htmlbody']); //from a database
$cssobj = $dom->getElementsByTagName('style');
$bodyobj = $dom->getElementsByTagName('body')->item(0);
$plainbody = new DOMDocument();
foreach ($bodyobj->childNodes as $child){
$plainbody->appendChild($plainbody->importNode($child, true));
}
$body = $plainbody->saveHTML();
$css = $cssobj->item(0)->nodeValue;
$cssToInlineStyles = new CssToInlineStyles();
$originalemail = $cssToInlineStyles->convert(
$body,
$css
);
何についての 'sass'? '$ color =" fff "; $ css = "$ background-color:$ color; body {background:\ $ background-color"; '残ったものだけをコンパイルして保存します。次に、[emogrifier](https://github.com/jjriv/emogrifier)を使ってCSSをインライン化することができます。 – Xorifelse