symfony2+;assetic:如何在使用{%javascripts%}时将css限制为打印

symfony2+;assetic:如何在使用{%javascripts%}时将css限制为打印,javascript,css,symfony,twig,media-queries,Javascript,Css,Symfony,Twig,Media Queries,在我的symfony 2应用程序中,我有: <link href="{{ asset('stylesheets/backend/plugins/fullcalendar/fullcalendar.print.css') }}" rel='stylesheet' media='print'> 我也有一个供应商的css文件修改它,需要放在后面。这一个包含在我的{%stylesheets%}块中: {% stylesheets 'stylesheets/backend/sty

在我的symfony 2应用程序中,我有:

<link href="{{ asset('stylesheets/backend/plugins/fullcalendar/fullcalendar.print.css') }}" rel='stylesheet' media='print'>

我也有一个供应商的css文件修改它,需要放在后面。这一个包含在我的{%stylesheets%}块中:

{% stylesheets
    'stylesheets/backend/style.css'

    filter='?yui_css, cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{%样式表
'样式表/后端/样式.css'
过滤器='?yui_css,cssrewrite'
%}
{%endstylesheets%}
现在的问题是,如果我将打印css放在样式表块中,我会丢失media=print参数,事情就会变得一团糟

如何将css包含到样式表块中,并将其使用限制在打印媒体查询中


非常感谢

有几种方法可以做到这一点:

1) 您可以将特定于打印的样式表拆分为一个新的
样式表
块(您可以根据需要拥有任意多个),只需将
media='print'
属性添加到
元素中即可

它看起来像这样:

{% stylesheets
    'foo.css'
    'bar.css'

    filter='?yui_css, cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

{% stylesheets
    'vendor_stylesheet_with_print_styles.css'

    filter='?yui_css, cssrewrite'
%}
<link rel="stylesheet" href="{{ asset_url }}" media="print" />
{% endstylesheets %}

嗯,这是一个供应商css,所以我不能把它放在媒体查询中。你是说我们可以向样式表小枝块中列出的特定文件添加媒体打印属性吗?你可以向样式表块的元素添加“media=”print“,并且可以有多个样式表块(以分离用于打印的样式表和用于桌面的样式表)。我编辑了我的答案,希望能澄清。
@media print {
    ... styles go here ...
}