#html #svg #linear-gradients
#HTML #svg #линейные градиенты
Вопрос:
Как я могу объединить два градиента с SVG?
Один слева направо,
один сверху вниз
Я хочу что-то вроде этого:
Пример:
color range 1 : (100,100,0) to (150,150,0)
color range 2 : (0, 0, 50) to (0,0,130)
Я хочу отобразить все возможные комбинации (цветовой диапазон 1 цветовой диапазон 2) Возможно ли это?
Комментарии:
1. вы можете попробовать использовать 2 перекрывающихся прямоугольника, каждый с одним градиентом
Ответ №1:
Как я уже прокомментировал, вы можете попробовать использовать 2 перекрывающихся прямоугольника, каждый с одним градиентом.
Наблюдение: в css первое изображение остается поверх второго. В SVG второй прямоугольник остается поверх первого. Итак, в SVG вам нужно изменить порядок.
#div,svg{
height:40vh;
width:90vw;
border:solid;
margin:.5em;
}
#div{
background:linear-gradient(0deg, rgba(255,0, 0 ,.8), rgba(255,0, 0 ,0)),
linear-gradient(90deg, rgba(0,255,0,.8), rgba(0,255, 0 ,0))
}
<div id="div"></div>
<svg viewBox="0 0 100 100" preserveAspectRatio="none">
<linearGradient id="lg1" y1="100%" y2 = "0%" x2="0%">
<stop offset = "0%" stop-color = "rgba(255,0, 0 ,.8)" />
<stop offset = "100%" stop-color = "rgba(255,0, 0 ,0)" />
</linearGradient>
<linearGradient id="lg2" x1="0%" x2 = "100%" >
<stop offset = "0%" stop-color = "rgba(0,255, 0 ,.8)" />
<stop offset = "100%" stop-color = "rgba(0,255, 0 ,0)" />
</linearGradient>
<rect width="100" height="100" fill="url(#lg2)"/>
<rect width="100" height="100" fill="url(#lg1)"/>
</svg>