Почему Drupal 7 предпочитает правила CSS @import тегам <link>?

25

«Не используйте @import», говорят многие парни.

Есть много недостатков в использовании @import.

  • Использование @importв таблице стилей добавляет еще один прием к общему времени загрузки страницы.
  • Использование @importв IE приводит к изменению порядка загрузки. Это может привести к тому, что таблицы стилей будут загружаться дольше, что мешает прогрессу рендеринга, заставляя страницу работать медленнее.

Почему Drupal 7 использует это?

Я хочу изменить @importправила на <link>теги. Как я могу это сделать?

наслаждаться жизнью
источник
1
+1 за вопрос, я просто хотел спросить то же самое, а потом нашел ваш, спасибо!
Sk8erPeter

Ответы:

22

Не используйте @import для импорта CSS-файлов :

@import используется только в режиме агрегации без CSS. Это сделано для обхода ограничения IE с количеством тегов.

Это должно объяснить причину и как от нее избавиться. Любой производственный сайт должен использовать агрегацию CSS и не иметь @import.

Джереми Френч
источник
1
+1, спасибо за ответ. Так что это обходной путь к тому, что модуль IE CSS Optimizer ( drupal.org/project/ie_css_optimizer ) пришлось использовать в Drupal 6, чтобы исправить проблему, из-за которой Internet Explorer отказывается загружать более 31 связанной таблицы стилей.
Sk8erPeter
Я знаю, что это несколько лет спустя, и большинство здравомыслящих людей не используют IE. к сожалению, я не работаю на самых вменяемых людей. При использовании response.js в IE 8 он не работает с использованием @imports. эту ошибку трудно найти
DeveloperChris
Что касается меня, я никогда не сталкивался с ограничением тегов IE. Так что это похоже на глупое решение. Переопределение проблемы, которая почти никогда не происходит. Если CSS-файлов много, вам нужно подумать, как объединить большую их часть. Для того, чтобы ускорить загрузку страницы.
Рантьев
-1, Этот ответ не отвечает на два вопроса в оригинальном сообщении. Почему Drupal использует @import и как мы можем его изменить?
Колин