viksnamax
@viksnamax
All-in-One

Как использовать цвет и узор вместе в SVG?

Создаётся фигура неправильной формы, заливается градиентом, а вот как использовать ещё и узор? Он должен быть поверх градиента и внутри фигуры

HTML:
<svg id="svg" viewBox="0 0 1000 1000">
    <defs>
        <linearGradient id="lgrad" x1="7%" y1="0%" x2="93%" y2="100%" >
            <stop offset="0%" style="stop-color:rgb(255,29,139);stop-opacity:1" />
            <stop offset="100%" style="stop-color:rgb(255,255,255);stop-opacity:1" />
        </linearGradient>
        <pattern id="pattern-bg" x="0" y="0" width="20" height="20" viewBox ='0 0 80 80' patternUnits="userSpaceOnUse">
            <circle fill="0x0" cx="3" cy="3" r="2.5"></circle>
        </pattern>
    </defs>
    <path id="path3"></path>
</svg>


CSS:
#path3 {
    fill: url(#lgrad);
}
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
LenovoId
@LenovoId
грёбнный короновирус
https://stackoverflow.com/a/60395056/6339052

На английском SO дали один единственный верный ответ ...я в никся и действительно задача которую я не знал

<svg id="svg" viewBox="0 0 1000 1000">
    <defs>
        <linearGradient id="grad" x1="7%" y1="0%" x2="93%" y2="100%" >
            <stop offset="0%" style="stop-color:rgb(255,29,139);stop-opacity:1" />
            <stop offset="100%" style="stop-color:rgb(255,255,255);stop-opacity:1" />
        </linearGradient>
        <pattern id="bg" x="0" y="0" width="20" height="20" viewBox ='0 0 80 80' patternUnits="userSpaceOnUse">
            <circle fill="0x0" cx="3" cy="3" r="2.5"></circle>
        </pattern>

        <pattern id="both" width="100%" height="100%">
           <rect width="100%" height="100%" fill="url(#grad)"/>
           <rect width="100%" height="100%" fill="url(#bg)"/>
        </pattern>
    </defs>
  <g>
    <path id="path3" d="M0,0 1000,0 1000,1000 0,1000z"  fill="url(#both)"></path>
  </g>
</svg>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы