условное включение ie css в Symfony 1.2

#css #symfony1

#css #symfony1

Вопрос:

Я хотел бы загрузить другой css для IE. Я использую Symfony 1.2. Какой самый быстрый способ? Я бы предпочел не использовать метод «view.yml». Я хотел бы иметь что-то подобное в моем заголовочном разделе:

 <link rel="stylesheet" href="css/screen.css" type="text/css" media="screen" />
      <!--[if lte IE 7]>
        <link rel="stylesheet" href="css/ie6.css" type="text/css" media="screen" /> 
<![endif]--> 
  

В настоящее время у меня есть этот код в моем layout.php файл для включения таблиц стилей.

 <?php include_http_metas() ?>
<?php include_metas() ?>
<?php use_stylesheet('style.css') ?>
  

Ребята, вы знаете какие-нибудь быстрые решения?

Ответ №1:

Symfony поддерживает условные CSS и JS, я не вижу причин не использовать view.yml — достаточно написать в view.yml (например, apps/frontend/config/view.yml)

CSS:

 stylesheets:
 - ie6.css: { condition: IE 6 }
  

JS:

 javascripts:
 - myiescript.js: { condition: IE 6 }
  

Ответ №2:

Я не вижу в этом проблемы. Просто поместите этот код в свой layout.php

 <?php include_http_metas() ?>
<?php include_metas() ?>
<?php use_stylesheet('style.css') ?>
<!--[if lte IE 7]>
  <?php echo stylesheet_tag('ie6'); ?>
<![endif]-->
  

Поместите ie6.css в каталог таблиц стилей.

Этот способ намного проще, поскольку вам не нужно жестко кодировать путь к вашему каталогу css.

Ответ №3:

Другой вариант — использовать метод addStylesheet в действии. Пример:

 $response->addStylesheet('ie8.css', '', array('condition' => 'IE 8'));
  

Ответ №4:

Symfony не поддерживает условные комментарии.

Самый простой способ поместить именно это в ваш файл макета, но вместо жесткого кодирования атрибута href используйте public_path помощник.

Комментарии:

1. ? Извините, не могли бы вы, пожалуйста, привести пример?

2. @Jojje вы получили еще один ответ, который в значительной степени соответствует тому, что я имел в виду.