2

我想我到处寻找,但没有成功。我正在学习 Symfony2,所以我可能忽略了一些东西。

这是我加载我的css的方式(它工作正常):

{% stylesheets filter='cssrewrite'
 '@MyHomeBundle/Resources/public/css/*.css'
 '@MyAuthBundle/Resources/public/css/*.css'
 '@MyUserBundle/Resources/public/css/*.css'
  <link rel="stylesheet" media="screen" type="text/css" href="{{ asset_url }}" />
{% endstylesheets %}

问题是我如何区分媒体:手持、印刷、屏幕?

发现在旧的 Symfony 版本中,有一个文件 view.yml,其中可以标记“mobile.css”将只为小型设备等加载。到那时我找到了讨论http://www.mail-archive。 com/symfony-devs@googlegroups.com/msg07718.html Symfony2 中的新方法要好得多,删除这个 view.yml 是很好的一步。然而,它让我无法解决我的问题。

所以问题是:我如何指定 media="handheld" 让我们说 mobile.css 或 media="print" 为可打印版本,从我的捆绑包中获取?

我猜这可能是某种条件,在树枝中测试名称,并且取决于名称,例如 home_mobile.css 或 home_print.css 将相应地加载 media="handheld" 或 media="print",默认情况下 media="屏幕” - 但如果这是正确的方向以及如何实现它?

谢谢你的帮助

4

2 回答 2

2

我也找不到官方答案,但使用两组样式表标签是可行的。

{% stylesheets filter='less,cssembed,cssrewrite,?yui_css' output='css/screen.css'
    'bundles/wolproject/css/main.less'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="all" />
{% endstylesheets %}

{% stylesheets filter='less,cssembed,cssrewrite,?yui_css' output='css/print.css'
    'bundles/wolproject/css/print.less'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" media="print" />
{% endstylesheets %}
于 2013-08-28T01:55:32.353 回答
0

不是真正的答案,而是替代解决方案。

根据您网站的规模,我可能会将它们全部保存在一个 CSS 文件中,以加快页面加载时间,以及用于打印和设备的媒体查询。然后,您可以将上面的代码更改为 media="all"。

链接相关 - http://css-tricks.com/one-two-three/

于 2013-05-15T16:01:24.867 回答