У меня есть пара CSS-файлов с перекрывающимися CSS-селекторами, которые я хотел бы программно объединить (например, не просто добавив один файл в конец другого). Есть ли инструмент, чтобы сделать это онлайн? или расширение Firefox возможно?
Нет, я бы хотел, но усилия по программированию кажутся слишком большими, поскольку существует несколько способов ссылки на один элемент. Лучшее, что вы можете сделать, - это использовать среду выполнения, такую как FireBug, для поиска дубликатов.
Я нашел Factor CSS - в комплекте с исходным кодом, но я думаю, что он работает намного больше, чем мне нужно. Я просто хочу объединить блоки CSS с одинаковыми селекторами. Я проверю исходный код и посмотрю, можно ли его преобразовать во что-нибудь, пригодное для использования в качестве пакета TextMate. То есть, если кому-то еще не удастся добраться до него раньше меня.
РЕДАКТИРОВАТЬ: еще лучше - вот список веб-инструментов для проверки / форматирования / оптимизации CSS .
Я написал утилиту Perl, чтобы сделать это несколько лет назад.
Помимо объединения одной или нескольких таблиц стилей в один согласованный отсортированный вывод (с комментариями, показывающими, в каком файле (ах) каждое свойство появилось, и предупреждениями, когда свойство имеет конфликтующие значения), вы также можете выборочно искать или объединять на основе селектор, свойство или оба.
Они обрабатываются разумно, так что, например, если вы ищете свойство, которое font
вы также получаете font-size
, и font-weight
т. Д. (Все еще представлены внутри блоков CSS с соответствующими селекторами, из которых они были взяты). Аналогично, поиск селектора пытается сделать правильную вещь (то есть, как правило, наиболее полезную). Если вы ищете, скажем, элемент a
, он будет соответствовать любому блоку, селектор a
, a:hover
, a.extlink
, a#mylink
, .foo a
, #bar a
, p a
, pre > a
, a + p
, a img
... (последние два не непосредственно влияют на стиль в a
себе , а в смежном или потомке элемент, о котором часто полезно знать в таком поиске), без соответствия #a
,.a
и т. д. Конечно, это поведение не является обязательным, вы также можете искать точный селектор. Или регулярное выражение
Кроме самого perl, единственной зависимостью является CSS :: Tiny
Это бесплатное программное обеспечение, и вы можете получить его здесь: cssmerge