Ich habe eine HTML-Eingabe.
padding: 5px 10px;
Ich möchte, dass die Eingabe 100% der Breite des übergeordneten Divs beträgt (was fließend ist).
Verwendung jedoch width: 100%;
Ursachen die Eingabe zu sein , 100% + 20px
wie ich das umgehen kann?
html
css
width
fluid-layout
Hagelholz
quelle
quelle
input
und Unterstützung von IE7Antworten:
box-sizing: border-box
ist eine schnelle und einfache Möglichkeit, das Problem zu beheben:Dies funktioniert in allen modernen Browsern und IE8 +.
Hier ist eine Demo: http://jsfiddle.net/thirtydot/QkmSk/301/
Die Versionen mit Browserpräfix (
-webkit-box-sizing
usw.) werden in modernen Browsern nicht benötigt.quelle
Deshalb haben wir
box-sizing
in CSS.Ich habe Ihr Beispiel bearbeitet und jetzt funktioniert es in Safari, Chrome, Firefox und Opera. Probieren Sie es aus: http://jsfiddle.net/mathias/Bupr3/ Alles, was ich hinzugefügt habe, war Folgendes :
Leider unterstützen ältere Browser wie IE7 dies nicht. Wenn Sie nach einer Lösung suchen, die in alten IEs funktioniert, lesen Sie die anderen Antworten.
quelle
Verwenden Sie die Polsterung auch in Prozent und entfernen Sie sie aus der Breite:
quelle
Sie können es ohne Verwendung
box-sizing
und nicht klare Lösungen wie tunwidth~=99%
.Demo auf jsFiddle :
padding
undborder
margin
=border-width
+horizontal padding
padding
, dermargin
dem vorherigen Schritt entsprichtHTML-Markup:
CSS:
quelle
Verwenden Sie css calc ()
Super einfach und super.
Wie hier zu sehen: Div Breite 100% minus feste Pixelanzahl
Von webvitaly ( https://stackoverflow.com/users/713523/webvitaly )
Originalquelle: http://web-profile.com.ua/css/dev/css -width-100prc-minus-100px /
Habe das hier einfach kopiert, weil ich es im anderen Thread fast verpasst habe.
quelle
Angenommen, ich bin in einem Container mit 15px Polsterung, dann verwende ich das immer für den inneren Teil:
Dadurch wird der Innenteil auf die Breite gedehnt, die auf beiden Seiten weniger als 15 Pixel betragen sollte.
quelle
width:auto
Anwendung auf eininput
Feld veröffentlichen?Sie können einige Positionierungstricks ausprobieren. Sie können die Eingabe in ein div mit
position: relative
und einer festen Höhe setzen, dann auf die Eingabe habenposition: absolute; left: 0; right: 0;
und jede Auffüllung, die Sie mögen.Live Beispiel
quelle
<input>
Elementen in Firefox funktionieren (idk about IE). Es funktioniert jedoch mit<div>
s. Und nein,display: block
das<input>
funktioniert auch nicht: - /Hier ist die Empfehlung von codeontrack.com , die gute Lösungsbeispiele enthält:
quelle
Verschieben Sie die Auffüllung des Eingabefelds in ein Wrapper-Element.
Siehe Beispiel hier: http://jsfiddle.net/L7wYD/1/
quelle
Verstehe einfach den Unterschied zwischen Breite: auto; und Breite: 100%; Breite: auto; berechnet (AUTO) MATICALLY die Breite, um die genaue Angabe des Wickelbereichs einschließlich der Polsterung zu treffen. Breite 100% erweitert die Breite und fügt die Polsterung hinzu.
quelle
Was ist mit dem Einwickeln in einen Behälter? Behälter sollten Stil haben wie:
quelle
Versuche dies:
quelle
Für mich war
margin:15px;padding:10px 0 15px 23px;width:100%
das Ergebnis:Die Lösung für mich war,
width:auto
statt zu verwendenwidth:100%
. Mein neuer Code war:margin:15px;padding:10px 0 15px 23px;width:auto
. Dann ist das Element richtig ausgerichtet:quelle
Ich hatte das gleiche Problem. Repariere es so:
quelle
Du kannst das:
quelle