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 を削除することは良いステップでした。それにもかかわらず、私の問題に対する解決策はありませんでした。

問題は次のとおりです。たとえば、mobile.css に media="handheld" を指定したり、印刷可能なバージョンに media="print" を指定したりして、バンドルから取得するにはどうすればよいですか?

これは何らかの条件である可能性があり、小枝で名前をテストし、名前に応じて、たとえば home_mobile.css または home_print.css が media="handheld" または media="print" をロードし、デフォルトで media="画面」-しかし、これが正しい方向であり、それを達成する方法は?

ご協力いただきありがとうございます

4

2 に答える 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

実際には答えではありませんが、代替ソリューションです。

サイトの規模にもよりますが、ページの読み込み時間を短縮するために、印刷用とデバイス用のメディア クエリを使用して、すべてを 1 つの CSS ファイルにまとめます。その後、上記のコードを media="all" に変更できます。

リンク関連 - http://css-tricks.com/one-two-three/

于 2013-05-15T16:01:24.867 に答える