¡Acostúmbrate a escribir juntos! Este es el séptimo día de mi participación en el "Nuevo plan diario de Nuggets · Desafío de actualización de abril", haga clic para ver los detalles del evento .
Introducción
Además de los colores sólidos, también se pueden usar patrones y degradados para rellenar y delinear gráficos en SVG.
relleno de patrón
- Los rellenos de patrón requieren el uso de
patterns
elementos, uno de los tipos de relleno. patternUnits
La propiedad establece cómo se organizan los patrones. Valor predeterminadoobjectBoundingBox
.
- Cuando se utiliza
objectBoundingBox
, el tamaño del patrón se calcula en función del tamaño del objeto que se va a rellenar.
<svg width="400" height="400">
<defs>
<pattern id="pa" x="0" y="0" patternUnits="objectBoundingBox" width="20%" height="20%">
<path d="M 0 0 h 20 v 20 h -20 z" style="stroke: black; fill: none"></path>
</pattern>
</defs>
<rect width="100" height="100" stroke="#aaa" fill="url(#pa)" />
<rect x="110" width="200" height="200" stroke="#aaa" fill="url(#pa)" />
</svg>
复制代码
1.2 Establezca el ancho y la altura al 20%. Se dibuja un cuadrado de 20px en el patrón. Se intercepta la primera imagen que es un 20 % más pequeña que el cuadrado de 20 px y, a continuación, se coloca el patrón en mosaico. La segunda imagen es un 20 % más grande que 20 px, el patrón se vuelve más grande y luego se coloca en mosaico.
- Usa
userSpaceOnUse
atributos parawidth和height
hacer patrones de acuerdo a.
<pattern id="pa" x="0" y="0" patternUnits="userSpaceOnUse" width="40" height="40">
<path d="M 0 0 h 40 v 40 h -40 z" style="stroke: black; fill: none"></path>
<path d="M 20 22 A 5 10 -45 1 0 20 34" fill="#aaa" />
<path d="M 20 22 A 5 10 45 1 1 20 34" fill="#aaa" />
</pattern>
<rect fill="url(#pa)" stroke="black" x="0" y="0" width="200" height="200" />
复制代码
2.2 width和height
Mosaico del patrón generado según la configuración.
patternContentUnits
La propiedad establece qué tipo de gráficos tienen ancho y alto en el patrón. Valor predeterminadouserSpaceOnUse
.
userSpaceOnUse
Establece el tamaño del patrón utilizando el tipo de coordenadas predeterminado px.objectBoundingBox
Utilice porcentajes para establecer el tamaño del patrón.
<defs>
<pattern
id="pa"
x="0"
y="0"
width=".2"
height=".2"
patternUnits="objectBoundingBox"
patternContentUnits="objectBoundingBox"
>
<path d="M 0 0 h 0.2 v 0.2 h -0.2z" style="stroke: black; stroke-width: 0.01; fill: none"></path>
</pattern>
</defs>
<rect width="100" height="100" stroke="#aaa" fill="url(#pa)" />
<rect x="110" width="200" height="200" stroke="#aaa" fill="url(#pa)" />
复制代码
2.1 Los cuadrados en el patrón visible también se calculan como porcentajes.
Relleno degradado
linearGradient
Degradado lineal, una serie de colores que transitan a lo largo de una línea recta, especificando el color deseado en una ubicación específica.- Atributos:
x1,y1
El punto inicial del degradado, expresado como un porcentaje. La dirección predeterminada del degradado es de izquierda a derecha.x2,y2
La posición final del gradiente, expresada como porcentaje.spreadMethod
Establezca el método de relleno degradado.
<defs>
<linearGradient id="linear" x1="100%" y2="100%">
<stop offset="0%" style="stop-color: #ffcc00"></stop>
<stop offset="100%" style="stop-color: #0099cc"></stop>
</linearGradient>
</defs>
<rect x="10" y="10" width="200" height="100" fill="url(#linear)"></rect>
复制代码
radialGradient
Degradado radial, donde cada punto de degradado es una ruta circular que se extiende desde el punto central.- Atributos:
cx,cy,r
Define el rango del degradado.La unidad de medida del radio es el ancho y alto promedio del objeto. El valor predeterminado es 50%.fx,fy
El centro de la ruta del círculo donde se encuentra el punto 0%.spreadMethod
Establece el caso en el que el rango de dibujo no alcanza el borde del gráfico.
<defs>
<radialGradient id="rad" cx="0%" cy="0%" r="60%">
<stop offset="0%" style="stop-color: #f96" />
<stop offset="50%" style="stop-color: #9c9" />
<stop offset="100%" style="stop-color: #906" />
</radialGradient>
<radialGradient id="pad" xlink:href="#rad" spreadMethod="pad" />
<radialGradient id="repeat" xlink:href="#rad" spreadMethod="repeat" />
<radialGradient id="reflect" xlink:href="#rad" spreadMethod="reflect" />
</defs>
<rect x="10" y="10" width="100" height="100" fill="url(#pad)" />
<rect x="10" y="120" width="100" height="100" fill="url(#repeat)" />
<rect x="10" y="230" width="100" height="100" fill="url(#reflect)" />
复制代码
stop
elemento, establezca el punto de degradado.
offset
propiedad para especificar la ubicación del punto de degradado. El rango de valores es 0%-100%.stop-color
Atributo, correspondiente aloffset
color del punto de posición.stop-opacity
Atributo, correspondiente aoffset
la opacidad del punto de posición.