Maison >interface Web >tutoriel CSS >Pourquoi les éléments d'entrée au niveau bloc ne remplissent-ils pas toujours leurs conteneurs comme des div ?

Pourquoi les éléments d'entrée au niveau bloc ne remplissent-ils pas toujours leurs conteneurs comme des div ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 11:52:12865parcourir

Why Don't Block-Level Input Elements Always Fill Their Containers Like Divs?

Éléments d'entrée affichés sous forme de bloc : pourquoi ils diffèrent des divs

Il est courant de percevoir un élément d'entrée avec display: block et width : auto se comporter comme un div, occupant toute la largeur de son conteneur. Cependant, comme observé dans l'extrait de code donné, ce n'est pas le cas.

Comprendre l'écart

Contrairement aux div, les éléments d'entrée suivent un modèle de boîte différent, appelé le modèle de la bordure. Ce modèle prend en compte le remplissage et les bordures dans le calcul de la largeur globale, contrairement au modèle de zone de contenu utilisé pour les divs.

Surmonter le problème

Pour forcer un élément d'entrée à s'étendre sur toute la largeur du conteneur, tout en respectant son remplissage et ses bordures, on peut utiliser la propriété max-width: 100%. Cette technique limite essentiellement la largeur de l'élément d'entrée à son conteneur parent, même si la largeur calculée dépasse cette valeur en raison de sa bordure et de son remplissage.

Compatibilité entre navigateurs

Pour obtenir un comportement cohérent entre les navigateurs, la propriété box-sizing: border-box récemment introduite peut être utilisée. Cette propriété demande explicitement au navigateur d'utiliser le modèle border-box pour l'élément cible, quel que soit son modèle de boîte par défaut.

Implémentation

Le code suivant illustre cette solution :

<div class="wrapper">
  <input type="text" class="input" placeholder="Input Text" />
</div>

<style>
  .wrapper {
    width: 500px;
    border: 1px solid black;
    padding: 20px;
  }

  .input {
    width: 100%;
    box-sizing: border-box;
  }
</style>

Cette approche garantit que l'élément d'entrée occupe toute la largeur du conteneur dans tous les principaux navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn