å¡ãã¤ã¶ãã¨ã¹ããã¼ã¯
å³å½¢ã«è²ãä»ããæ¹æ³ã¨ãã¦ã¯ (ãªãã¸ã§ã¯ãã«å±æ§ãæå®ãããã¨ãå«ã)ãã¤ã³ã©ã¤ã³ CSSãåã込㿠CSS ã»ã¯ã·ã§ã³ãå¤é¨ CSS ãã¡ã¤ã«ãªã©ããã¤ãã®æ¹æ³ãããã¾ããã»ã¨ãã©ã« SVG ã§ã¯ã¤ã³ã©ã¤ã³ CSS ã使ç¨ãã¦ãã¾ãããã©ã®æ¹æ³ã«ãå©ç¹ã¨æ¬ ç¹ãããã¾ãã
fill ããã³ stroke 屿§
>å¡ãã¤ã¶ã
åºæ¬çãªè²ä»ãã¯ããã¼ãã« fill 㨠stroke ã¨ãã 2 ã¤ã®å±æ§ãè¨å®ãããã¨ã§è¡ããã¨ãã§ãã¾ãã fill ã使ç¨ããã¨ãªãã¸ã§ã¯ãã®å
é¨ã®è²ãè¨å®ãã stroke ã¯ãªãã¸ã§ã¯ããå²ãç·ã®è²ãè¨å®ãã¾ããè²å (ä¾ãã° red)ãRGB å¤ (ä¾ãã° rgb(255 0 0))ã16 鲿°å¤ãªã©ãHTML ã§ç¨ãã CSS ã®è²åã¨åãä»çµã¿ãç¨ãããã¨ãã§ãã¾ãã
<?xml version="1.0" standalone="no"?>
<svg width="160" height="140" xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect
x="10"
y="10"
width="100"
height="100"
stroke="blue"
fill="purple"
fill-opacity="0.5"
stroke-opacity="0.8"
stroke-width="15" />
</svg>
ããã«ã SVG ã§ã¯ fill 㨠stroke ã®éæåº¦ãå¥ã
ã«æå®ãããã¨ãã§ãã¾ããããã㯠fill-opacity 屿§ã¨ stroke-opacity 屿§ã§å¶å¾¡ããã¾ãã
ã¹ããã¼ã¯
ãã®è²ã®ããããã£ã«å ãã¦ãç·ä¸ã«ã¹ããã¼ã¯ãæç»ããæ¹æ³ãæä½ããããã®å±æ§ãããã¤ãããã¾ãã

<?xml version="1.0" standalone="no"?>
<svg width="160" height="140" xmlns="http://www.w3.org/2000/svg" version="1.1">
<line x1="40" x2="120" y1="20" y2="20" stroke="black" stroke-width="20" stroke-linecap="butt"/>
<line x1="40" x2="120" y1="60" y2="60" stroke="black" stroke-width="20" stroke-linecap="square"/>
<line x1="40" x2="120" y1="100" y2="100" stroke="black" stroke-width="20" stroke-linecap="round"/>
</svg>
stroke-width ããããã£ã¯ããã®ã¹ããã¼ã¯ã®å¹
ãå®ç¾©ãã¾ããã¹ããã¼ã¯ã¯ãã¹ã®ä¸å¿ã«æããã¾ããä¸ã®ä¾ã§ã¯ããã¹ã¯ãã³ã¯è²ãã¹ããã¼ã¯ã¯é»ã§è¡¨ç¤ºããã¦ãã¾ãã
ã¹ããã¼ã¯ã«å½±é¿ãã 2 ã¤ç®ã®å±æ§ã¯ãä¸è¨ã® stroke-linecap ããããã£ã§ããããã¯ãç·ã®ç«¯ã®å½¢ç¶ãå¶å¾¡ãã¾ãã
ãã®ããããã£ã«ã¯æå®ã§ããå¤ã 3 種é¡ããã¾ãã
buttã¯ãã¹ããã¼ã¯ã®æ¹åã«å¯¾ãã¦åç´ (90 度) ãªç´ç·ã¨ãã¸ã§ç·ãéãããã®ç«¯ã交差ããã¾ããsquareã¯åºæ¬çã«ã¯åãå¤è¦³ã§ãããã¹ããã¼ã¯ãå®éã®ãã¹ããããããã«ä¼¸ã°ãã¾ããã¹ããã¼ã¯ããã¹ãããé·ããªãé·ãã¯ãstroke-widthã®ååã§ããroundã¯ãã¹ããã¼ã¯ã®çµããã«ä¸¸ãã广ãããããã¾ãããã®æ²ç·ã®åå¾ã¯ãstroke-widthã§å¶å¾¡ãã¾ãã
ã¾ã stroke-linejoin ããããã£ã¯ã 2 æ¬ã®ç·åã®æ¥ç¶é¨ãã©ã®ããã«æç»ããããå¶å¾¡ãã¾ãã

<?xml version="1.0" standalone="no"?>
<svg width="160" height="280" xmlns="http://www.w3.org/2000/svg" version="1.1">
<polyline points="40 60 80 20 120 60" stroke="black" stroke-width="20"
stroke-linecap="butt" fill="none" stroke-linejoin="miter"/>
<polyline points="40 140 80 100 120 140" stroke="black" stroke-width="20"
stroke-linecap="round" fill="none" stroke-linejoin="round"/>
<polyline points="40 220 80 180 120 220" stroke="black" stroke-width="20"
stroke-linecap="square" fill="none" stroke-linejoin="bevel"/>
</svg>
ãããã®é£ç¶ç·ã¯ããããã 2 æ¬ã®ç·åããæã£ã¦ãã¾ãã 2 æ¬ã®æ¥ç¶ç®æã¯ stroke-linejoin 屿§ã§å¶å¾¡ãã¾ãããã®å±æ§ã§åãããå¤ã¯ 3 ã¤ããã¾ãã
miter ã¯ãç·ãé常ã®å¹
ãããããã«å»¶é·ãã¦ã 1 ã¤ã®è§åº¦ã ãã使ç¨ãã¦åè§ãè§ã使ãã¾ãã round ã¯ã丸ã¿ã帯ã³ãç·åã使ãã¾ãã bevel ã¯ã2 ã¤ã®ç·åã®éãæ¸¡ãããã«æ°ããè§ãçæãã¾ãã
ãã¨ã stroke-dasharray 屿§ãæå®ãããã¨ã§æ³¢ç·ç¶ã®ã¹ããã¼ã¯ãæç»ãããã¨ãã§ãã¾ãã

<?xml version="1.0" standalone="no"?>
<svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1">
<path d="M 10 75 Q 50 10 100 75 T 190 75" stroke="black"
stroke-linecap="round" stroke-dasharray="5,10,5" fill="none"/>
<path d="M 10 75 L 190 75" stroke="red"
stroke-linecap="round" stroke-width="1" stroke-dasharray="5,5" fill="none"/>
</svg>
stroke-dasharray 屿§ã¯å¼æ°ã¨ãã¦ãé£ç¶ããã«ã³ãåºåãã®æ°å¤ãã¨ãã¾ãã
æåã®æ°åã¯å¡ãã¤ã¶ãããé¨åã®é·ããã 2 çªç®ã®æ°åã¯å¡ãã¤ã¶ããã¦ããªãé¨åã®é·ããæå®ãã¾ããä¸ã®ä¾ã§ã¯ã 2 çªç®ã®ãã¹ã§ 5 ãã¯ã»ã«åä½ãåãã 5 åä½ã®æ¬¡ã®ããã·ã¥ã¾ã§ 5 åä½ã®ç©ºç½ãä½ãã¾ãããã£ã¨è¤éãªããã·ã¥ãã¿ã¼ã³ã«ãããå ´åã¯ãããå¤ãã®æ°åãæå®ãããã¨ãã§ãã¾ããæåã®ä¾ã§ã¯ 3 ã¤ã®æ°åãæå®ãã¦ãã¾ããããã®å ´åãã¬ã³ãã©ã¼ã¯æ°åã 2 åã«ã¼ãããã¦å¶æ°ã®ãã¿ã¼ã³ãä½ãã¾ããã¤ã¾ããæåã®ãã¹ã§ã¯ã 5 åã®å¡ãã¤ã¶ãã 10 åã®ç©ºã 5 åã®å¡ãã¤ã¶ããã¬ã³ããªã³ã°ãããããã«ã«ã¼ããã¦ã 5 åã®ç©ºã 10 åã®å¡ãã¤ã¶ãã 5 åã®ç©ºã使ããã¾ãããã®ãã¿ã¼ã³ãç¹°ãè¿ããã¾ãã
stroke ããã³ fill ããããã£ã¯ä»ã«ãããã¾ããä¾ãã°ã fill-rule ã¯èªèº«ãéãªãåã£ã¦ããå³å½¢ã§ã©ã®ããã«è²ãã¤ããããæå®ãã¾ãã stroke-miterlimit ã¯ã¹ããã¼ã¯ã miter ãæç»ãããã©ãããæå®ãã¾ãããã㦠stroke-dashoffset ã¯ãç·ä¸ã§æ³¢ç·ã®åãã©ãããå§ããããæå®ãã¾ãã
æç»é
å¡ãã¤ã¶ãã¨ã¹ããã¼ã¯ã®æç»é åºã¯ã paint-order 屿§ã使ç¨ãã¦å¶å¾¡ã§ãã¾ãã
<?xml version="1.0" standalone="no"?>
<svg width="400" height="180" xmlns="http://www.w3.org/2000/svg" version="1.1">
<polyline
points="40 80 80 40 120 80"
stroke-width="15"
stroke="black"
fill="coral"
paint-order="fill" />
<polyline
points="40 140 80 100 120 140"
stroke-width="15"
stroke="black"
fill="coral"
paint-order="stroke" />
</svg>
æåã®å³å½¢ã®å ´åãã¹ããã¼ã¯ã®åã«å¡ãã¤ã¶ããã¬ã³ããªã³ã°ããã¦ãããããå¡ãã¤ã¶ãã®ä¸ã«é»ãã¹ããã¼ã¯ãç¾ãã¾ãã 2 ã¤ç®ã®å³å½¢ã®å ´åãå¡ãã¤ã¶ãã®åã«ã¹ããã¼ã¯ãã¬ã³ããªã³ã°ããã¦ãã¾ãã
CSS ã®ä½¿ç¨
ãªãã¸ã§ã¯ãã«å±æ§ãè¨å®ããã ãã§ãªãã CSS ã使ã£ã¦å¡ãã¤ã¶ããã¹ããã¼ã¯ã®ã¹ã¿ã¤ã«ãè¨å®ãããã¨ãã§ãã¾ãããã¹ã¦ã®å±æ§ã CSS ã§è¨å®ã§ããããã§ã¯ããã¾ããããµã¤ãã¯æç»ãå¡ãã¤ã¶ããè¡ã屿§ãå©ç¨ã§ãã¾ãã fill, stroke, stroke-dasharray ãªã©ã¯ãã°ã©ãã¼ã·ã§ã³ãå¾è¿°ãããã¿ã¼ã³çã«è¿½å ãããã¨ã§ããã¹ã¦ãã®æ¹æ³ã§è¨å®ã§ãã¾ãã width, height, <path> ã³ãã³ããªã©ã®å±æ§ã¯ã CSS ã§ã¯è¨å®ã§ãã¾ãããä½ã使ãã¦ãä½ã使ããªãã®ãã¯ããã¹ããã¦ã¿ãã®ãä¸çªç°¡åã§ãã
ã¡ã¢: SVG 仿§æ¸ ã§ã¯ããããã£ã¨ãã®ä»ã®å±æ§ãå³å¯ã«åºå¥ãã¦ãã¾ããåè 㯠CSS ã§å¤æ´ã§ãã¾ãããå¾è ã¯ã§ãã¾ããã
CSS ã¯è¦ç´ ã« style 屿§ãç¨ãããã¨ã§ãã¤ã³ã©ã¤ã³ã§æ¿å
¥ãããã¨ãã§ãã¾ãã
<rect x="10" height="180" y="10" width="180" style="stroke: black; fill: red;"/>
ãããã¯ãç¹å¥ãª style ã»ã¯ã·ã§ã³ã«ç§»ããã¨ãã§ãã¾ãããã®ãããªã»ã¯ã·ã§ã³ã¯ HTML ã®ããã« <head> ã«å
¥ããã®ã§ã¯ãªãã <defs> ã¨å¼ã°ããé åã«å
¥ãã¾ãã
<defs> ã¯å®ç¾©ãæå³ããããã§ä½æãããè¦ç´ 㯠SVG ã®ä¸ã§ç´æ¥ã¯ç¾ãã¾ããããä»ã®è¦ç´ ãã使ç¨ããã¾ãã
<?xml version="1.0" standalone="no"?>
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<style><![CDATA[
#MyRect {
stroke: black;
fill: red;
paint-order: stroke;
}
]]></style>
</defs>
<rect x="10" height="180" y="10" width="180" id="MyRect"/>
</svg>
ã¹ã¿ã¤ã«ããã®ãããªé åã«ç§»ãã¨ã大ããªè¦ç´ ã°ã«ã¼ãã§ã®ããããã£ã®èª¿æ´ã容æã«ãªãã¾ãããã¼ã«ãªã¼ãã¼å¹æãä½ãããã® :hover æ¬ä¼¼ã¯ã©ã¹ ãªã©ãç¨ãããã¨ãã§ãã¾ãã
#MyRect:hover {
stroke: black;
fill: blue;
}
CSS ã«ã¼ã«ãå¤é¨ã¹ã¿ã¤ã«ã·ã¼ãã§æå®ããã®ã«ããµã¤ãã® XML ã¹ã¿ã¤ã«ã·ã¼ãæ§æã使ç¨ãããã¨ãã§ãã¾ãã
<?xml version="1.0" standalone="no"?>
<?xml-stylesheet type="text/css" href="style.css"?>
<svg width="200" height="150" xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect height="10" width="10" id="MyRect"/>
</svg>
style.css ã¯ä»¥ä¸ã®ããã«ãã¾ãã
#MyRect {
fill: red;
stroke: black;
}