Есть ли способ отредактировать SVG-файлы в Illustrator, где вы можете указать класс CSS для каждого пути?
Я уже знаю в Illustrator, что если вы дадите имени слоя фактическое имя, Illustrator будет использовать это имя в качестве идентификатора пути, что хорошо, если вы не планируете повторно использовать значок более одного раза на одной странице.
Мой текущий обходной путь - просто использовать метод идентификаторов, а затем конвертировать идентификаторы в классы в моем редакторе кода, но это довольно неприятно делать каждый раз, когда я генерирую свой SVG-спрайт.
Если это в настоящее время невозможно в Illustrator, есть ли другие приложения, которые позволят вам указать это? Или, может быть, пакет Grunt или Gulp?
Похоже, что вы могли бы сделать это с Inkscape с помощью взлома , поэтому я мог бы посмотреть на это, если нет других хороших решений там.
источник
Ответы:
Я делаю это с задачей Гранта. Используя "grunt-text-replace", я могу передать свои уменьшенные SVG (svgmin) через пользовательское регулярное выражение, которое заменяет все искаженные ссылки на классы соответствующими классами.
В Illustrator, например, объявите имя слоя / объекта как class = "tree" . Это будет экспортировано Illustrator как id = "class =" tree "" . Следующая задача grunt позаботится об этом и сделает ее class = "tree" . Я также вставляю ниже некоторые другие подзадачи, которые будут выполнять очистку идентификатора (рекомендуется).
Затем вы можете вызвать эту задачу в вашем Gruntfile как:
источник
Похоже, что ссылка, которую опубликовал Ян Данн, может быть вашим билетом. Вот выдержка из этой страницы :
Illustrator может экспортировать графические стили в виде CSS в элементе стиля и применять их через классы в коде SVG. Вот как вы можете генерировать классы в вашем экспортированном SVG. В зависимости от того, что вы хотите, чтобы эти классы делали, вы можете просто определить их в другом файле CSS и удалить определения стилей из экспортированного SVG.
Связанная страница утверждает это, но для полноты картины Illustrator будет генерировать элемент и классы стиля только в том случае, если вы установили
CSS Properties: Style Element
в области «Дополнительно» (вам может потребоваться нажатьMore Options
) диалогового окна «Параметры SVG»:Я также хотел бы отметить, что сгенерированный код никогда не будет идеальным для всех ситуаций. Рукописный код имеет тенденцию быть легче и легче для чтения людьми (если это то, что вы собираетесь). Я бы порекомендовал прочитать документ Quibik для пользователя из Викимедиа о ручной очистке файлов SVG и взглянуть на grunt-svgmin .
источник
Я только столкнулся с этой проблемой и нашел следующее решение (для Illustrator CC):
Примените названные «Графические стили» к путям, которые вы хотите назвать, и экспортируйте SVG с помощью внутреннего CSS. Например, графический стиль с именем my-icon будет определять внутренний
my-icon
класс и применять этот класс к правильным путям.Пример со скриншотами:
Создайте новый графический стиль:
Экспортировать как ... SVG:
Выход:
<defs><style>.my-icon{ fill:#000; }</style></defs> <path class="my-icon">...</path>
Источник: https://www.viget.com/articles/5-tips-for-saving-svg-for-the-web-with-illustrator
CC: иллюстратор использует определенные графические стили для создания именованных классов (умный, полезный)
источник
В Illustrator 21.0.0 (2017) и, возможно, в более ранних версиях:
Элементам в SVG будет присвоен атрибут класса со значением «my-style». Затем вы можете использовать внешний CSS для переопределения стилей.
Обратите внимание, что если имя вашего стиля содержит пробел, оно преобразуется в дефис.
источник
Простой способ сделать это, он похож на задачу Grunt, но еще проще:
Для всех объектов, которые вы хотите создать класс, дайте имя, например: «myClassmainCircle» и «myClassmainStar». После экспорта замените все: 'id = "myClass" на "class ="'
Результатом будет: class = "mainCirle" class = "mainStar"
источник