inline_css

这个 inline_css 筛选HTML文档中的内联CSS样式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{% apply inline_css %}
    <html>
        <head>
            <style>
                p { color: red; }
            </style>
        </head>
        <body>
            <p>Hello CSS!</p>
        </body>
    </html>
{% endapply %}

也可以通过将一些样式表作为参数传递给筛选器来添加它们:

1
2
3
4
5
6
7
{% apply inline_css(source("some_styles.css"), source("another.css")) %}
    <html>
        <body>
            <p>Hello CSS!</p>
        </body>
    </html>
{% endapply %}

通过过滤器加载的样式将覆盖在中定义的样式 <style> HTML文档的标记。

也可以对包含的文件使用筛选器:

1
2
3
{{ include('some_template.html.twig')|inline_css }}

{{ include('some_template.html.twig')|inline_css(source("some_styles.css")) }}

请注意,CSS内联线用于整个HTML文档,而不是片段。

注解

这个 inline_css 过滤器是 CssInlinerExtension 默认情况下不安装。先安装:

1
$ composer require twig/cssinliner-extra

然后,在symfony项目上,安装 twig/extra-bundle

1
$ composer require twig/extra-bundle

否则,请在Twig环境中显式添加扩展::

use Twig\Extra\CssInliner\CssInlinerExtension;

$twig = new \Twig\Environment(...);
$twig->addExtension(new CssInlinerExtension());