Display:block および width:auto による要素の動作のブロック解除
入力で display:block および width:auto を指定すると問題が発生します。これは、div のように動作し、コンテナーの幅を満たすように拡張されるという期待とは異なります。 div は自動幅のブロック要素であるという前提にもかかわらず、これは入力フィールドには当てはまりません。
問題の理解
ボックス モデルを継承する入力フィールドHTML 標準では、要素の幅には実際のコンテンツのみが含まれ、パディングや境界線は含まれません。したがって、入力フィールドに width:auto を設定しても、パディングと境界線は自動的に含まれません。
全幅入力を実現する
入力フィールドがコンテナのフィールドを満たすようにするには幅については、さまざまなアプローチが考えられます。
1. Box Sizing
CSS3 では、ボックス モデルの動作を制御できるようにするボックス サイズ設定プロパティが導入されています。入力フィールドの box-sizing: border-box を設定すると、コンテンツとパディングおよびボーダーの両方を含む幅が定義されます。
2.クロスブラウザ ソリューション
クロスブラウザ ソリューションには、ブラウザ固有のプレフィックスおよび Internet Explorer 6 ~ 7 の条件ステートメントとともに CSS3 を使用することが含まれます。これにより、異なるブラウザ間での互換性が確保されます。
3.ラッパーの回避策
代替ソリューションには、ラッパー要素を使用するか、パディングとボーダーを考慮した特定の幅を割り当てることが含まれます。ただし、これらの回避策には、セマンティック HTML と CSS セレクターの関係に関する制限があります。
結論
入力フィールドの display:block および width:auto の動作は、次の理由により期待とは異なります。入力要素のボックス モデルの一意性によって異なります。この違いを理解し、ボックスのサイズ変更やブラウザ間の互換性などの代替ソリューションを検討することで、開発者は入力フィールドに必要な幅の要件を達成できます。
以上が`表示されないのはなぜですか: ブロック; width: auto;` 入力フィールドをコンテナいっぱいにしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。