2016-05-11 14 views
2

MDNは、line-heightがインライン要素に作用すると言います。画像はインライン要素です。では、なぜline-heightがimg要素で動作しないのですか? Here is the jsfiddleで、行の高さがイメージを中央に配置しません。img要素でline-heightが機能しないのはなぜですか?

+1

まず:ラインheigthは目的をセンタリングするためではありません。第2に、行の高さが期待どおりに動作しないため、インライン要素の行サイズと異なる動作になります。線高さ、詰め物、および罫線のあるを線高なし、罫線なしの別の桁の隣に表示してみてください。 –

答えて

5

あなたはへのリンクページにline-heightを使用する必要があると言う:、ボタンまたは他の入力要素、ラインとして置き換えインライン要素で

-heightは効果がありません。

img要素がインライン要素を交換しているので、line-heightは彼らには影響しません。

イメージの周りの線の高さを設定するには、余分な要素が必要です。

span { 
 
    line-height: 200px; 
 
} 
 
div { 
 
    outline: solid black 1px; 
 
}
<div> 
 
    Hello <span> <img src="http://www.iana.org/_img/2013.1/iana-logo-header.svg" alt=""> </span> World 
 
</div> 
 

 
<div> 
 
    Hello 
 
    <img src="http://www.iana.org/_img/2013.1/iana-logo-header.svg" alt="">World 
 
</div>

+0

正解! – dippas

2

あなたはdiv

.container { 
 
    width: 400px; 
 
    height: 400px; 
 
    border: 1px dotted black; 
 
    line-height: 400px; 
 
}
<div class="container"> 
 
    <img src="http://findicons.com/files/icons/2229/social_media_mini/48/google.png" alt=""> 
 
</div>

+1

イメージの代わりに 'span'があった場合、' div'に 'line-height'を使う必要はありません - https://jsfiddle.net/0km3dun6/1/なぜですか? – user31782

+0

'span'要素はテキストや他の要素を含むことができますが、' img'要素は含めることができないと思います。 –

関連する問題