<div class="main">
<div class="cont">
<input type="text" class="input" />
</div>
</div>
<br/>
<br/>
<br/> the textbox should have 10px
Es sieht so aus, als würde die Eingabe erst danach die richtige Breite erhalten .mainmin-width ist größer als 156px.
einstellen border:0; outline:0 zum input
– Vitorino fernandes
6. April 2015 um 11:53 Uhr
Sie möchten, dass die Breite des Eingabefelds 10 Pixel beträgt? wirklich aber wie?
– Kheema Pandey
6. April 2015 um 11:59 Uhr
In Ihrem Demo-Textfeld erscheinen 100%.
– Benutzer3386779
6. April 2015 um 12:00 Uhr
Es tut mir leid, aber wie/warum sollte das 10px sein? Nirgendwo in Ihrem Code haben Sie irgendeine Art von Breitendeklaration verwendet?
– jbutler483
1. Mai 2015 um 16:14 Uhr
Aufkleber
Es gibt size="20" eingestellt auf <input> Typ text, search, tel, url, emailund password … standardmäßig, was ungefähr der ist 100px Breite, obwohl sie in einem anderen Browser und Betriebssystem variieren kann.
Auf dem Elternteil haben Sie min-width:15px; gesetzt, das hat keine Auswirkungen, da der Wert viel kleiner als ist 100px. Wenn du es änderst width:15px; oder max-width:15px; dann siehst du die unterschiede.
Alternativ können Sie die geben size ein sehr kleiner Wert wie z size="1".
Stimmen Sie dafür ab size="1". Nicht etwas, auf das ich jemals gestoßen bin, aber super hilfreich, um eine Eingabe auf eine kleine Breite zu bringen (Randfall, aber manchmal erforderlich).
– Ryan
21. Januar 2021 um 16:52 Uhr
Myst
Du hast ein min-width eingestellt, aber nein max-width.
Das Lehrbuch hat eine vom Browser festgelegte Standardgröße. Diese Standardgröße ist größer als die min-widthsodass sowohl der Browser als auch das CSS gerne diese Standardbreite übernehmen und die Breite des Containers erhöhen.
Durch Setzen von a max-width oder ein width für den Container werden die Größe des Containers und der Eingabe eingeschränkt und ihre Größen werden entsprechend berechnet.
.main{
position:absolute;
border:1px solid black;
min-width:14px;
max-width:140px; // What do you want here?
}
Ich denke, das ist auch die Antwort von @sdcr, und er hat Ihnen auch Details zur Standardgröße und den Berechnungen gegeben.
Ändern Sie Ihre CSS-Breite auf 155px
.input{
width:155px; //Replace 100% to 155px
box-sizing:border-box;
}
Ich brauche die Breite der .input zu 100%, ich verwende tatsächlich atm a js Workaround, um die Eingabe auszublenden, die Breite der .main abzurufen und die Breite der .input festzulegen; Ich habe mich gefragt, ob es eine CSS-Regel gibt, die ich übersehen habe
– Omi
6. April 2015 um 11:52 Uhr
Das .main Container erstreckt sich über die Breite des Inhalts und nur wenn Sie den Bildschirm auf eine kleine Größe ändern, werden Sie sehen, dass der input passt tatsächlich mit einer kleineren als der Standardeingabebreite hinein. Wenn Sie die ändern width des .main Inhalt werden Sie feststellen, dass die input ändert seine Vorgabe width auf großem Bildschirm und schrumpft auf nicht weniger als die min-width Wert.
einstellen
border:0; outline:0
zuminput
– Vitorino fernandes
6. April 2015 um 11:53 Uhr
Sie möchten, dass die Breite des Eingabefelds 10 Pixel beträgt? wirklich aber wie?
– Kheema Pandey
6. April 2015 um 11:59 Uhr
In Ihrem Demo-Textfeld erscheinen 100%.
– Benutzer3386779
6. April 2015 um 12:00 Uhr
Es tut mir leid, aber wie/warum sollte das 10px sein? Nirgendwo in Ihrem Code haben Sie irgendeine Art von Breitendeklaration verwendet?
– jbutler483
1. Mai 2015 um 16:14 Uhr