É possível definir um nível de transparência ou alfa nas cores de preenchimento SVG?
Tentei adicionar dois valores à tag de preenchimento (alterá-la de fill="#044B94"
para fill="#044B9466"
), mas isso não funciona.
É possível definir um nível de transparência ou alfa nas cores de preenchimento SVG?
Tentei adicionar dois valores à tag de preenchimento (alterá-la de fill="#044B94"
para fill="#044B9466"
), mas isso não funciona.
Respostas:
Você usa um atributo adicional; fill-opacity
: Esse atributo assume um número decimal entre 0,0 e 1,0, inclusive; onde 0.0 é completamente transparente.
Por exemplo:
<rect ... fill="#044B94" fill-opacity="0.4"/>
Além disso, você tem o seguinte:
stroke-opacity
atributo para o traçadoopacity
para todo o objetofill_opacity
, mas em SVG e CSS, é fill-opacity
.
Como uma solução ainda não totalmente padronizada (embora alinhada com a sintaxe de cores no CSS3), você pode usar, por exemplo fill="rgba(124,240,10,0.5)"
. Funciona bem no Firefox, Opera, Chrome.
rgba
para rgb
e automaticamente adicionado o fill-opacity
atributo a ele. Não tenho certeza se é assim que funciona em SVGs normais também, mas é assim que funcionou lá. De qualquer forma, obrigado.
fill="#044B9466"
Essa é uma cor RGBA em notação hexadecimal dentro do SVG, definida com valores hexadecimais. Isso é válido, mas nem todos os programas podem exibi-lo corretamente ...
Você pode encontrar o suporte do navegador para esta sintaxe aqui: https://caniuse.com/#feat=css-rrggbbaa
A partir de agosto de 2017: as cores de preenchimento RGBA serão exibidas corretamente no Mozilla Firefox (54), Apple Safari (10.1) e no "Quick View" do Mac OS X Finder. No entanto, o Google Chrome não suportava essa sintaxe até a versão 62 (anteriormente era suportada na versão 54 com o sinalizador Recursos da plataforma experimental ativado).
Para tornar um preenchimento completamente transparente, fill="transparent"
parece funcionar em navegadores modernos. Mas não funcionou no Microsoft Word (para Mac), eu tive que usar fill-opacity="0"
.
fill="none"
funciona, mas fill="transparent"
não.
Use o atributo fill-opacity
em seu elemento do SVG.
O valor padrão é 1, o mínimo é 0, na etapa, use valores decimais EX: 0,5 = 50% de alfa. Nota: É necessário definir a fill
cor a aplicar fill-opacity
.
Veja meu exemplo .
fill="none"
compointer-events="visible"
.