参考サイト:https://memo.appri.me/programming/efficient-svg-icon
のようにsvgをbodyタグ直下に記述し、画像をどこから呼び出せるような記述をしたいです。
defsタグやその他のタグが増えると、容易に呼び出しができなくてご質問させていただきました
。
□ "#logo,#btn,#tag,#calender"は、useタグとidを指定して呼び出しできました。
───────────────
<svg>
<use xlink:href="#~~~~~~"></use>
</svg>
───────────────
□ しかし、"#line,#folder"は、display属性値をnoneにしなければ、呼び出せますが、
反面、該当画像がページ先頭に表示されてしまいます。
(display:noneだと先頭の表示画像と一緒に呼び出し画像が消えてしまうような状況)
本件、CSSにてbackground-image指定のコーディングにて、妥協しているのですが
項数を減らしたいことから、この問題を解決することはできないものかと考えています。
★質問内容
①defsタグが入っているsvgのsymbolタグを用いた正しい記述方法について
└(#logo)の時、symbol二回来てるのでそれが関係するのでしょうか?
②gタグやpathタグ以外で注意しておくべきタグはあるか
③pathのd値などが長くなってしまうのは、省略は前提に、あらかじめ簡素化できる方法があるか
以上の疑問が出てきました。
修正依頼については随時お受けしております。ご指摘いただければ幸いです。
ご教授の程、よろしくお願いいたします。
HTML
1<body> 2 <svg class="defs" version="1.1" xmlns="http://www.w3.org/2000/svg" display="none"> 3 <symbol id="logo"><defs><symbol id="svg_10"><metadata></metadata><g><path/></g></symbol></defs><g><use xlink:href="#svg_10"/><g/></g></symbol> 4 <symbol id="btn"><g><polygon/><ellipse/><line/><polygon/><polygon/><polygon/></g></symbol> 5 <symbol id="tag"><g><path/></g></symbol> 6 <symbol id="calender"><g><path/></g></symbol> 7 <symbol id="line"><defs><linearGradient></linearGradient><linearGradient/></defs><g><g/><path/></g></symbol> 8 <symbol id="folder"><defs><linearGradient><stop/><stop/></linearGradient><radialGradient><stop/><stop/></radialGradient></defs><g><path/></g></symbol> 9 </svg> 10 <div class="outer"> 11 <div id="folder1" class="container"> 12 <svg><use xlink:href="#folder"/></svg> //ここが反映されなくなる☆ 13 </div> 14 <div id="folder2" class="container"> 15 <svg><use xlink:href="#folder"/></svg> //ここが反映されなくなる☆ 16 </div> 17 <div id="folder3" class="container"> 18 <svg><use xlink:href="#folder"/></svg> //ここが反映されなくなる☆ 19 </div> 20 </div> 21 <div class="main"> 22 <article class="article"> 23 <section class="section1"> 24 <div class="set"> 25 <h1>Title1</h1> 26 <ul> 27 <svg><use xlink:href="#calender"/></svg> 28 <li>date</li> 29 <svg><use xlink:href="#tag"/></svg> 30 <li>object</li> 31 </ul> 32 </div> 33 <svg><use xlink:href="#line"/></svg> //ここが反映されなくなる☆ 34 </section> 35 </div> 36 </article> 37 <article class="article"> 38 <section class="section2"> 39 <div class="set"> 40 <h1>Title1</h1> 41 <ul> 42 <svg><use xlink:href="#calender"/></svg> 43 <li>date</li> 44 <svg><use xlink:href="#tag"/></svg> 45 <li>object</li> 46 </ul> 47 </div> 48 <svg><use xlink:href="#line"/></svg> //ここが反映されなくなる☆ 49 </section> 50 </div> 51 </article> 52 </div> 53</body> 54 55
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓追記↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
svg
1申し訳ありません。 2文字数が17770文字になってしまったので、コードペンにsvgを記載しています。 3https://codepen.io/89txtx/pen/XWNpEbG
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
#試したこと
html
1<symbol id="line"> 2 <defs 3 id="defs20"> 4 <symbol> 5 <linearGradient"> 6 <stop/> 7 <stop/> 8 </linearGradient> 9 </symbol> 10 </defs> 11 <g> 12 <use xlink:href="test"> 13 <g/> 14 <path/> 15 </g> 16</symbol> 17
回答1件
あなたの回答
tips
プレビュー