Bonjour,
Mon objectif est à la base assé simple:
placer dans une boite un SELECT et un INPUT(type text) et faire en sorte qu'ils prennent tous les deux toute la largeur de la boite.
Je fixe la largeur de la boite et demande aux deux éléments d'occuper 100% de celle-ci.
J'ajoute aussi quelques fioritures.
Et alors que je souhaite que mes deux éléments soit de même largeur, ce n'est pas le cas.
upload/11935-pbSelectIn.PNG
L'INPUT à effectivement une largeur de 200px, comme son père, mais le SELECT à une largeur de 194px, soit les 200px du père, moins ses padding gauche et droit de 1px et ses border gauche et droit de 2px.
En claire, l'INPUT adopte le modèle de boite préconisé par le W3C et le SELECT le modèle de boite du quirks mode.
Ayant les même résultat sur IE6 IE7 et FF3, j'en viens à penser qu'il s'agit d'un "bug" de la spécification W3C... ou alors il y a quelque chose d'assé capital que je n'ai pas compris.
Pour résoudre mon soucis j'ai essayé de jouer avec la propriété box-sizing défini dans CSS3 et plus ou moins supporté par les navigateurs et j'ai donc ajouté à ma feuille de style les propriétés suivantes:
Le problème est alors réglé pour FF3 mais ni pour IE6 ni IE7.
De même avec une valeur broder-box au lieu de content-box.
Donc plusieurs questions:
- pourquoi SELECT à un modèle de boite incluant les padding et les broder alors que je ne suis pas en quirk mode ?
- comment résoudre mon problème si les propriété box-sizing ne fonctionnent pas sous IE ?
J'espère avoir fait une présentation complète du problème et merci d'avance pour votre aide.
Modifié par LeeRoy (26 Aug 2009 - 12:05)
Mon objectif est à la base assé simple:
placer dans une boite un SELECT et un INPUT(type text) et faire en sorte qu'ils prennent tous les deux toute la largeur de la boite.
<div>
<select>
<option> factice </option>
<option> exemple </option>
</select>
<input type="text"/>
</div>
Je fixe la largeur de la boite et demande aux deux éléments d'occuper 100% de celle-ci.
J'ajoute aussi quelques fioritures.
div{
width: 200px;
border: solid 5px black;
padding: 3px;
}
select{
width: 100%;
border: solid 2px red;
padding: 1px;
}
input{
width: 100%;
border: solid 2px red;
padding: 1px;
}
Et alors que je souhaite que mes deux éléments soit de même largeur, ce n'est pas le cas.
upload/11935-pbSelectIn.PNG
L'INPUT à effectivement une largeur de 200px, comme son père, mais le SELECT à une largeur de 194px, soit les 200px du père, moins ses padding gauche et droit de 1px et ses border gauche et droit de 2px.
En claire, l'INPUT adopte le modèle de boite préconisé par le W3C et le SELECT le modèle de boite du quirks mode.
Ayant les même résultat sur IE6 IE7 et FF3, j'en viens à penser qu'il s'agit d'un "bug" de la spécification W3C... ou alors il y a quelque chose d'assé capital que je n'ai pas compris.
Pour résoudre mon soucis j'ai essayé de jouer avec la propriété box-sizing défini dans CSS3 et plus ou moins supporté par les navigateurs et j'ai donc ajouté à ma feuille de style les propriétés suivantes:
-ms-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-box-sizing: content-box;
Le problème est alors réglé pour FF3 mais ni pour IE6 ni IE7.
De même avec une valeur broder-box au lieu de content-box.
Donc plusieurs questions:
- pourquoi SELECT à un modèle de boite incluant les padding et les broder alors que je ne suis pas en quirk mode ?
- comment résoudre mon problème si les propriété box-sizing ne fonctionnent pas sous IE ?
J'espère avoir fait une présentation complète du problème et merci d'avance pour votre aide.
Modifié par LeeRoy (26 Aug 2009 - 12:05)