すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください
各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選択ボックスの表示が異なっていることがわかっています。次に、主要な外観 CSS プロパティをサポートすることで、完全に互換性のある選択を作成します。
選択項目の高さ、パディング、行の高さのデモを作成し、さまざまなブラウザで 3 つの状況をテストしました。height.100.padding.0、height.no.padding.100、no.height.no.padding です。結果はリンクされた画像に示されています。各ブラウザのデモの外観

以下の研究特性を導き出すことができます。

IE6 について

IE7 の

8 です

IE9 について

ff

ch

sf

オプ

デフォルトの高さ

22ピクセル

22ピクセル

19ピクセル

20ピクセル

19ピクセル

19ピクセル

身長

T

T

T

T

T

T

パディング

T

T

T

T

T

行の高さ

T

テキストを垂直に中央揃え

T

T

T

T

T

T


上記の調査結果の属性まとめから、IE6 では設定方法に関係なく高さが 22px に固定されていること、Safari 以外のブラウザでは height 属性をサポートしていることがわかったので、height:22px を設定します。次に、Safari ブラウザを修正します。line-height 属性をサポートしているのは Safari のみであることがわかったので、line-height を使用して高さを 22px に修正できます。font-size が 12px であることを前提として、line-height:22px を設定します。最後に、FF と IE9 のテキストは中央揃えになりません。padding:2px 0 を設定します。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">
<ヘッド>
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8" />
<title>デモ</title>
<スタイル>
*{パディング:0; マージン:0}
本文{フォントサイズ:12px}
選択{高さ:22px; 行の高さ:18px; パディング:2px 0}
</スタイル>
</head>
<本文>
<div スタイル="margin-top:20px; margin-left:20px; 背景:#000">
<選択>
<option>デモンストレーション質問 1</option>
<option>デモンストレーション質問 2</option>
<option>デモンストレーション質問3</option>
<option>デモンストレーション質問 4</option>
<option>デモンストレーション質問 5</option>
</選択>
</div>
</本文>
</html>

<<:  MySQL タイムブラインドインジェクションの 5 つの遅延方法

>>:  React で複数の setStates が何回呼び出されるのでしょうか?

推薦する

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...

Vue でデータコレクターを設計する

目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...

MySQLトランザクションを実行するための構文とプロセスの詳細な説明

概要: MySQL は、トランザクションをサポートするためにさまざまなストレージ エンジンを提供しま...

Docker+Jenkinsによる自動デプロイの実現方法

Code Cloud を使用して Git コード ストレージ ウェアハウスを構築するhttps://...

HTML に埋め込まれた MP4 形式のビデオが再生できないのはなぜですか?

次のコードは、私の test.html にあります。ビデオは、c:\test.html などの絶対パ...

MacでのMySQL5.7.22のインストール手順

1. インストールパッケージを使用してMySQLをインストールします(オンラインダウンロードは遅すぎ...

Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明

目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...

フレックスレイアウトが子要素によって引き伸ばされたときに、コンテンツをコンテナ内に保持する方法

モバイル デバイスでは、フレックス レイアウトが非常に便利です。デバイスの幅に応じてコンテナーの幅を...

docker での psql データベースのバックアップとリカバリの詳細な説明

1. DockerでのPostgresデータベースのバックアップ注文: docker exec it...

CSS3 で King of Glory マッチング人員読み込みページを実装する方法

King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...

JavaScriptのアロー関数の特徴と通常の関数との違い

目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...

Dockerイメージ内のファイルを表示する方法

Dockerイメージ内のファイルを表示する方法1. すでに実行中の場合すでに実行中のイメージについて...