Я работаю над некоторыми критическими изменениями стиля для сайта WordPress клиента, который был разработан другой командой.
CSS кажется запутанным беспорядком. Одна из особенностей , которые я нашел, что основная таблица стилей Тематической в style.css
, @imports другой таблицы стилей из подкаталога css/default.css
. В то же время, default.css
@imported основной таблицы стилей в верхней части своего файла тоже.
Я удалил директивы @import и добавил содержимое default.css
в style.css
, но это нарушает компоновку независимо от того, помещаю ли я default.css
стили вверху или внизу style.css
файла. Цикл @import делает что-то с каскадом, что каким-то образом заставляет верстку работать.
Я никогда не видел ничего подобного раньше. Кажется очевидным, что я должен распутать таблицы стилей и упорядочить селекторы в порядке возрастания специфичности. Но есть ли разумное обоснование для намеренного создания двух файлов CSS, которые @import друг друга? Это кажется сумасшедшим, но возможно ли, что есть принципиальная причина этого?
Я специализируюсь на фронтэнде, а не на WordPress. Я отмечаю, что WordPress анализирует основную таблицу стилей темы для получения информации о теме. Является ли рекурсия @import чем-то полезным для WordPress?
@import
?Ответы:
@import - большой беспорядок относительно времени загрузки страницы. После того, как вы сделаете CSS, ваш клиент придет с идеей оптимизации времени загрузки, и самое позднее там снова встанет вопрос об избавлении от @import.
Во-первых, я бы попытался заменить @import на <link>. Затем попробуйте с помощью dev-tools определить, какие классы конфликтуют. После этого попробуйте переместить правила CSS из импортированного CSS-файла с добавлением! Важное.
Может случиться, что есть некоторые проблемы с (относительными) путями файлов в импортированном файле CSS ...?
Иногда это помогает загружать сайт в браузере с помощью @imported CSS, так что похоже на то, что ожидает клиент, затем скопировать весь CSS с помощью dev-tools, сохранить его в один файл CSS и заменить все файлы CSS на этот вновь созданный один.
Глобальная идея, которую я хотел бы реализовать, состоит в том, чтобы переместить все правила CSS в один и тот же файл, заставить его работать, а затем переместить правила CSS для области выше сгиба в заголовок файла HTML.
источник