1. ホーム
  2. Web制作
  3. HTML/Xhtml

すべてのブラウザに完全対応したselectを作成するためのベストプリセット

2022-01-16 04:08:55
selectタグはブラウザによってプロパティやサポートが異なるため、セレクトボックスの表示もブラウザごとに異なることが分かっています。
セレクトの高さ、パディング、ラインハイトをそれぞれ制御変数、height.100.padding.0, height.no.padding.100, no.height.no.padding にして、各ブラウザで3ケーステストするDEMOを書きました。結果は以下の通りです。 各ブラウザのリンク画像 DEMOの外観

次のような学習属性を導き出すことができる。
<テーブル

ie6

IE7

IE8

IE9

ff

ch

sf

op

デフォルトの高さ

22px

22px

19px

20px

19px

19px

高さ

F

T

T

T

T

T

F

T

パディング

F

F

T

T

T

T

F

T

ラインハイト

F

F

F

F

F

F

T

F

テキストの垂直方向中央揃え

T

T

T

F

F

T

T

T


以上の調査結果のまとめにより、IE6はどう設定しても高さ22px固定、safari以外のブラウザはheightプロパティに対応しているので、height:22pxとすることがわかりました。height属性があるので、line-heightで高さを22pxに固定できる、font-sizeが12pxの前提でline-height:22pxを設定、最後にFFとIE9は中の文字が中央に来ない、padding:2px 0を設定、FFとIE9は中央に来ることが分かった、しかし各高さは FFとIE9は中央来ることが分かった、しかし各ブラウザでの選択の高さは増加しない、そこでちょっと質問、高さの設定の場合、paddingは少しで全体の高さを増やさないのか?
以下は完全互換のコード例です。
コピーコード
コードは以下の通りです。

<!DOCTYPE html PUBLIC "-/W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
*{padding:0; margin:0}
body{font-size:12px}
select{height:22px; line-height:18px; padding:2px 0}
</style>
</head>
<body>
<div style="margin-top:20px; margin-left:20px; background:#000">
<select>
<option> demo question one</option>
<option>Demonstration problem two</option>
<option>Demonstration problem three</option>
<option>Demonstration Question Four</option>
<option>Demonstration Question Five</option>
</select>
</div>
</body>
</html>