2017-03-01 11 views
2

の高さに付着しません 自動高さは、私は次のコードを使用して、親要素内でSVGのアイコンをラップSVGアイコンコンポーネントを作成したそのSVGアイコンの子

ラッピングのdivの高さがに設定されていてもCSS

body { 
    font-size: 48px; 
    color: black; 
} 

.icon-wrapper { 
    background-color: lightgreen; 
} 

.icon { 
    width: 1em; 
    height: 1em; 

    stroke-width: 0; 
    stroke: currentColor; 
    fill: currentColor; 

    background-color: red; 
} 
(初期値)では、何らかの形で底部にパディングが追加されているため、囲まれたSVGよりも数ピクセルの高さです。緑豊かなエリアが存在してはならない。

Erroneous wrapper height

これはなぜでしょうか? svgタグはそれを修正する親要素にline-height:0;を設定し、inline-block要素であるため、https://jsbin.com/huyojeniwi/1/edit?html,css,output

答えて

1

SVG画像がインライン要素であり、ブラウザが "P"、 "Q"、「Yのような "長い" シンボルの底からのSPaseを節約するためであります"

これにはいくつかの解決策があります: まず:

.icon { display: block; }

第二:

.icon-wrapper { font-size: 0; } .icon { font-size: 48px; } 

サード

.icon-wrapper { line-heigth: 1em; } .icon { vertical-align: top } 
+0

スペースが実際にある理由についての追加情報をお寄せいただきありがとうございますそこ! – suamikim

+0

@disstructそれはコールです***カーニング*** *** ***スピース***、インラインボックスの詳細を読む[ここ](https://www.w3.org/TR/CSS2/visuren.html#inline-ボックス) –

+0

@Ahbhishek Pandeyありがとう。おもしろいですね – disstruct

1

はこれが起こっている:

は、ここにあなたが一緒にプレイすることができます実際の例です。

インラインボックスは、ブロック親要素からfont-size,line-heightなどの継承可能なプロパティを継承し、スペース/マージンを作成します。

For more info

body { 
 
    font-size: 48px; 
 
    color: black; 
 
} 
 

 
.icon-wrapper { 
 
    background-color: lightgreen; 
 
    line-height: 0; 
 
} 
 

 
.icon { 
 
    width: 1em; 
 
    height: 1em; 
 
    stroke-width: 0; 
 
    stroke: currentColor; 
 
    fill: currentColor; 
 
    background-color: red; 
 
}
<!-- Inlined SVG sprite --> 
 
<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
 
    <defs> 
 
     <symbol id="icon-search" viewBox="0 0 26 28"> 
 
     <title>search</title> 
 
     <path d="M18 13c0-3.859-3.141-7-7-7s-7 3.141-7 7 3.141 7 7 7 7-3.141 7-7zM26 26c0 1.094-0.906 2-2 2-0.531 0-1.047-0.219-1.406-0.594l-5.359-5.344c-1.828 1.266-4.016 1.937-6.234 1.937-6.078 0-11-4.922-11-11s4.922-11 11-11 11 4.922 11 11c0 2.219-0.672 4.406-1.937 6.234l5.359 5.359c0.359 0.359 0.578 0.875 0.578 1.406z"></path> 
 
     </symbol> 
 
    </defs> 
 
    </svg> 
 

 
<div class="icon-wrapper"> 
 
    <svg class="icon"> 
 
     <use xlink:href="#icon-search"></use> 
 
    </svg> 
 
</div>

関連する問題