Использование переменной CSS в функции поворота CSS

#html #css #variables #svg

#HTML #CSS #переменные #svg

Вопрос:

Я разрабатываю SVG-изображение снеговика и пытаюсь использовать переменные для определения конкретных вещей. Цвет ремешка на шляпе и цвет шарфа успешно задаются var(--maincolor) . С чем у меня возникли проблемы, так это с тем var(--armangle) .

 lt;path d="..." stroke="#442200" stroke-width="2" fill="none" transform="rotate(var(--armangle))" transform-origin="32.5% 60%"/gt;  

Почему это не принимается?

Я пытался:

 svg{  --armangle: 20deg; }  

и

 svg{  --armangle: 20; }  

но ни то, ни другое не работает вообще.

Есть ли способ использовать переменную в функции в CSS? Нормальное значение (без deg ) работает ( deg просто игнорируется) очень хорошо.

Ответ №1:

Вы должны использовать либо атрибуты, либо CSS для оформления.

Как вы можете видеть из двух примеров, стиль может быть определен либо как часть SVG, либо в отдельной таблице стилей.

При использовании переменных/значений CSS необходимо указать, что это количество степеней (например 20deg ).

 :root {  --armangle: 20deg; } 
 lt;svg viewBox="0 0 3 3" width="200" height="200"gt;  lt;stylegt;  path {  transform: rotate(var(--armangle));  }  lt;/stylegt;  lt;path d="M 0 0 L 0 1 L 1 1 L 1 0 Z" stroke="#442200"  stroke-width=".1" fill="none" transform-origin="32.5% 60%"/gt; lt;/svggt; 
 :root {  --armangle: 20deg; }  svg gt; path {  transform: rotate(var(--armangle)); } 
 lt;svg viewBox="0 0 3 3" width="200" height="200"gt;  lt;path d="M 0 0 L 0 1 L 1 1 L 1 0 Z" stroke="#442200"  stroke-width=".1" fill="none" transform-origin="32.5% 60%"/gt; lt;/svggt; 

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

1. Да, теперь я понимаю. Спасибо! 😀