J'ai une entrée html.
L'entrée a padding: 5px 10px;
Je veux que ce soit 100% de la largeur de la div parent (qui est fluide).
Cependant, l'utilisation de width: 100%;
l'entrée 100% + 20px
permet de contourner ce problème.
html
css
width
fluid-layout
Hailwood
la source
la source
input
et supporte IE7Réponses:
box-sizing: border-box
est un moyen rapide et facile de le réparer:Cela fonctionnera dans tous les navigateurs modernes et IE8 +.
Voici une démo: http://jsfiddle.net/thirtydot/QkmSk/301/
Les versions préfixées du navigateur (
-webkit-box-sizing
, etc.) ne sont pas nécessaires dans les navigateurs modernes.la source
C'est pourquoi nous avons
box-sizing
en CSS.J'ai édité votre exemple, et maintenant cela fonctionne dans Safari, Chrome, Firefox et Opera. Vérifiez-le: http://jsfiddle.net/mathias/Bupr3/ Tout ce que j'ai ajouté était ceci:
Malheureusement, les navigateurs plus anciens comme IE7 ne le prennent pas en charge. Si vous recherchez une solution qui fonctionne dans les anciens IE, consultez les autres réponses.
la source
Utilisez également le rembourrage en pourcentages et supprimez de la largeur:
la source
Vous pouvez le faire sans utiliser
box-sizing
et pas des solutions claires commewidth~=99%
.Démo sur jsFiddle :
padding
etborder
margin
=border-width
+horizontal padding
padding
égal à celuimargin
de l'étape précédenteBalisage HTML:
CSS:
la source
Utilisez css calc ()
Super simple et génial.
Comme vu ici: largeur Div 100% moins quantité fixe de pixels
Par webvitaly ( https://stackoverflow.com/users/713523/webvitaly )
Source originale: http://web-profile.com.ua/css/dev/css -largeur-100prc-moins-100px /
Je viens de le copier ici, car je l'ai presque manqué dans l'autre fil.
la source
En supposant que je suis dans un conteneur avec un rembourrage de 15 pixels, c'est ce que j'utilise toujours pour la partie intérieure:
Cela étirera la partie intérieure à n'importe quelle largeur, elle devrait être inférieure aux 15 pixels de chaque côté.
la source
width:auto
application à uninput
champ?Vous pouvez essayer quelques astuces de positionnement. Vous pouvez mettre l'entrée dans un div avec
position: relative
et une hauteur fixe, puis sur l'entrée avoirposition: absolute; left: 0; right: 0;
et n'importe quel rembourrage que vous aimez.Exemple en direct
la source
<input>
éléments de Firefox (idk sur IE). Cela fonctionne avec<div>
s, cependant. Et non,display: block
sur le<input>
ça ne marche pas non plus: - /Voici la recommandation de codeontrack.com , qui contient de bons exemples de solutions:
la source
Déplacez le remplissage de la zone de saisie vers un élément wrapper.
Voir l'exemple ici: http://jsfiddle.net/L7wYD/1/
la source
Comprenez simplement la différence entre la largeur: auto; et largeur: 100%; Largeur: auto; calculera (AUTO) MATICALEMENT la largeur afin de correspondre exactement à la valeur indiquée avec la div de l'emballage, y compris le rembourrage. La largeur de 100% élargit la largeur et ajoute le rembourrage.
la source
Qu'en est-il de l'emballage dans un récipient. Le conteneur doit avoir un style comme:
la source
Essaye ça:
la source
Pour moi, en utilisant
margin:15px;padding:10px 0 15px 23px;width:100%
, le résultat était le suivant:La solution pour moi était d'utiliser
width:auto
au lieu dewidth:100%
. Mon nouveau code était:margin:15px;padding:10px 0 15px 23px;width:auto
. Ensuite, l'élément s'est aligné correctement:la source
J'ai eu le même problème. Fixez-le comme ceci:
la source
Tu peux le faire:
la source