javascript - opacity vs fill-opacity in svg -


what difference in opacity vs 'fill-opacity' in svg?

i referred docs fill-opacity , opacity confused meant fill-opacity: opacity of content of current object vs opacity: transparency of object

the difference name indicates :). fill-opacity applicable fill of element (or in other words, background), stroke-opacity applicable stroke whereas opacity applicable both.

the opacity kind of post-processing operation. is, element (or group) whole (the fill + stroke) rendered , transparency adjusted based on opacity setting whereas fill-opacity , stroke-opacity intermediate steps, transparency individually added stroke , fill. when stroke-opacity , fill-opacity used together, result still not same using opacity (because transparency on fill let fill color show through wherever overlap). can see difference visually in first 2 elements below.

also indicated robert (in comments), fill-opacity doesn't apply image whereas opacity work.

svg {    width: 100vw;    height: 100vh;  }  body {    background: url(http://lorempixel.com/600/600/nature/1);    height: 100vh;  }  polygon {    stroke-width: 3;  }
<svg viewbox='0 0 40 190'>    <polygon points='10,10 30,10 30,30 10,30' fill='steelblue' stroke='crimson' opacity='0.5' />    <polygon points='10,40 30,40 30,60 10,60' fill='steelblue' stroke='crimson' fill-opacity='0.5' stroke-opacity='0.5' />    <polygon points='10,70 30,70 30,90 10,90' fill='steelblue' stroke='crimson' fill-opacity='0.5' />    <polygon points='10,100 30,100 30,120 10,120' fill='steelblue' stroke='crimson' stroke-opacity='0.5' />    <image xlink:href='http://lorempixel.com/100/100/nature/3' x='8.5' y='130' width='23' height='23' stroke='crimson' opacity='0.5' />    <image xlink:href='http://lorempixel.com/100/100/nature/3' x='8.5' y='160' width='23' height='23' stroke='crimson' fill-opacity='0.5' />  </svg>


in css world can think of in below snippet. (note not saying equal, there subtle differences between svg , css. attempt explain svg attributes translate in css.)

div {    height: 20vh;    width: 20vh;    margin: 30px auto;    font-family: verdana;    font-size: 2vw;  }  div:nth-of-type(1) {    opacity: 0.5;    background: rgba(70, 130, 180, 1);    border: .35vw solid rgba(220, 20, 60, 1);  }  div:nth-of-type(2) {    background: rgba(70, 130, 180, 0.5);    border: .35vw solid rgba(220, 20, 60, 1);  }  div:nth-of-type(3) {    background: rgba(70, 130, 180, 1);    border: .35vw solid rgba(220, 20, 60, 0.5);  }  body {    background: url(http://lorempixel.com/600/600/nature/1);    height: 100vh;  }
<div></div>  <div></div>  <div></div>


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -