以下は、インライン画像がテキスト行の行全体の高さにどのように影響するかを説明するのに役立つ例です。
次のHTMLスニペットを検討してください。
<form>
<div class="field-wrap ex1">
<label for="ex1">Text</label>
<input type="text" id="ex1" name="ex1"
value="Example 1.............................">
<img src="http://placehold.it/50x32">
</div>
<div class="field-wrap ex2">
<label for="ex2">Text</label>
<input type="text" id="ex2" name="ex1"
value="Example 2.............................">
<img src="http://placehold.it/50x50">
</div>
<div class="field-wrap ex3">
<label for="ex3">Text</label>
<input type="text" id="ex3" name="ex1"
value="Example 3.............................">
<img src="http://placehold.it/50x64">
</div>
<div class="field-wrap ex4">
<label for="ex4">Text</label>
<input type="text" id="ex4" name="ex1"
value="Example 4.............................">
<img src="http://placehold.it/50x64">
</div>
</form>
基本的に、各input
フィールドには関連付けられたlabel
フィールドとimg
タグがあり、すべてブロック要素にラップされています.field-wrap
。
CSSの場合:
form {
font-size: 25px;
line-height: 2;
font-family: sans-serif;
}
.field-wrap {
background-color: yellow;
margin: 10px 0;
vertical-align: middle;
}
.field-wrap input {
font-size: inherit;
}
.field-wrap input, .field-wrap label, .field-wrap img {
vertical-align: inherit;
}
.ex4.field-wrap {
vertical-align: baseline;
}
次の結果が得られます。

いずれの場合も、25px のフォント サイズを選択し、行の高さをフォント サイズの 2 倍にしました。
またvertical-align: middle
、すべての子要素 ( input
、label
およびimg
) を設定します。これは重要。
デフォルトでは、入力フィールドの高さは font-size と適用されるパディングによって制御されます。ただし、高さを指定することもできます。この場合は 30px に設定します。入力ボックスには 1 ピクセルの境界線があるため、全体の高さは実際には 32 ピクセルであることに注意してください。
例 1 では、入力ボックスの高さに合わせて高さ 32px の画像を選択しました。垂直方向の配置も同様に中央揃えになっています。
例 2 では、画像の高さを 50px に増やし、画像が高さ 50px の親要素に正しく収まるようになりました (line-height が 25px のフォント サイズの 2 倍であるため)。
例 3 では、画像の高さを 64px にしました。この場合、親要素の高さは画像に合わせて増加します。これは、CSS 仕様に従った正しいレンダリングです。
最後に、例 4 では、垂直方向の配置をデフォルトの に設定しますbaseline
。この場合、画像の下部がテキストの下部と一致します。これにより、親ブロックが画像の高さに合わせてさらに高くなります。テキスト/入力フィールド。
これにより、垂直方向の配置がどのように機能するかが明確になります。
その他のコメント:
画像を正確に中央に配置するには、エッジの周りに透明なスペースがないことを確認してください。これは、画像を画像編集プログラムで開いた場合に明らかです。
画像をインライン ブロックでラップし、高さを指定してから、画像の高さを 100% に設定することもできます。これにより、奇妙なサイズの画像が特定の高さに収まるように強制されます。
jsFiddleでコードを参照してください