在PHP变量或DOMDocument中更改CSS元素

时间:2017-01-27 03:30:26

标签: php css

我正在构建来自CSS和HTML的外部变量的电子邮件,然后将它们组合为内联样式。然而,在它们组合之前,我想改变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;
     }";

另外,值得一提的是,我正在使用下面的CSS(然后内联样式),所以也许DOMDocument可以帮助我 - 这看起来更干净,但我不知道从哪里开始。

    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
    );

1 个答案:

答案 0 :(得分:0)

如果您知道要删除的确切文本,可以使用php中的<div class="card"> <div class="card-block"> <div class="row"> <div class="col-xs-4"> <h4 class="card-title">Title</h4> </div> <div class="col-xs-4"> <h5>- smaller that should be beside main title</h5> </div> <div class="col-xs-4"> <button class="card-title btn btn-primary pull-right">Button</button> </div> </div> <p class="card-text">Entry 1</p> <p class="card-text">Entry 2</p> <p class="card-text">Entry 3</p> <p class="card-text">Entry 4</p> </div> </div> 。示例:str_replace()

$str_replace('margin:0;','',$css)