使用Sass和Symfony2的Assetic创建条件样式表的最佳方法是什么?

时间:2014-03-25 03:38:40

标签: css symfony sass stylesheet compass-sass

我的项目框架是Symfony 2.0。我通过Assetic使用Compass过滤器来编译我的Sass文件。但是,由于我有条件代码加载某些css文件,因此我不确定如何构建我编译的CSS文件。除此之外,我希望能够包含我的IE条件。

(i.e.<!--[if IE 7]>
    <link rel="stylesheet" type="text/css" href="ie7.css">
<![endif]-->). 

不确定我是否应该使用我在下面创建的相同的If语句,或者是否有更优雅的解决方案:

即。 CssBundle /资源/视图/ stylesheets.html.twig

{% block stylesheets %}
    {% if isEspanol %}
        {% stylesheets filters=”compass” @cssBundle/Resources/css/core/es/main.desktop.scss” %}
    {% else %}
        {% stylesheets filters=”compass” @cssBundle/Resources/css/core/main.desktop.scss” %}
    {% endif %} 
<link rel=”stylesheet” href=”{{ asset_url }}” />
{% endstylesheets %}

CoreBundle /资源/视图/布局/ default.desktop.html.twig

<head>
    {% include “::stylesheets.html.twig” %}
</head>

1 个答案:

答案 0 :(得分:1)

我不知道交响乐框架, 但如果您唯一的问题是IE黑客的条件样式表,那么答案可能是不使用条件样式表

使用html条件类

<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]-->

请参阅Paul Irish's recommendations here