Ich habe ein generisches Formular, das ich formatieren möchte, um die Beschriftungen und Eingabefelder auszurichten. Aus irgendeinem Grund passiert nichts, wenn ich dem Etikettenwähler eine Breite gebe:
HTML:
<form id="report-upload-form" method="POST" action="" enctype="multipart/form-data">
<p>
<label for="id_title">Title:</label>
<input id="id_title" type="text" class="input-text" name="title"></p>
<p>
<label for="id_description">Description:</label>
<textarea id="id_description" rows="10" cols="40" name="description"></textarea></p>
<p>
<label for="id_report">Upload Report:</label>
<input id="id_report" type="file" class="input-file" name="report">
</p>
</form>
CSS:
#report-upload-form {
background-color: #316091;
color: #ddeff1;
font-weight:bold;
margin: 23px auto 0 auto;
border-radius:10px;
width: 650px;
box-shadow: 0 0 2px 2px #d9d9d9;
}
#report-upload-form label {
padding-left:26px;
width:125px;
text-transform: uppercase;
}
#report-upload-form input[type=text],
#report-upload-form input[type=file],
#report-upload-form textarea {
width: 305px;
}
Ausgabe:
Was mache ich falsch?
<p>
wirklich eine gute Idee, die Formularabschnitte in Tags zu verpacken ?Antworten:
Tun Sie
display: inline-block
:http://jsfiddle.net/aqMN4/
quelle
Verwenden
display: inline-block;
Erläuterung:
Das
label
ist ein Inline-Element, dh es ist nur so groß, wie es sein muss.Setzen Sie die
display
Eigenschaft auf entwederinline-block
oderblock
, damit diewidth
Eigenschaft wirksam wird.Beispiel:
quelle
label
Element diewidth
Eigenschaft nicht respektiert, da es sich um ein Inline-Element handelt. Ich möchte darauf hinweisen, dass dasinput
Element standardmäßig auch ein Inline-Element ist. Im Gegensatz zumlabel
Element kann die Breite jedoch mithilfe der Eigenschaft width geändert werden . Daher ist die Argumentation des Autors nicht korrekt.Ich glaube, dass Etiketten inline sind und daher keine Breite haben. Versuchen Sie es vielleicht mit "display: block" und gehen Sie von dort aus.
quelle
Machen Sie es zuerst zu einem Block und schweben Sie dann nach links, um den nächsten Block nicht mehr in eine neue Zeile zu schieben.
quelle
Gib den Stil
hoffe das wird helfen '
quelle
label
Der Standardmodusdisplay
istinline
, dh , die Größe wird automatisch an den Inhalt angepasst. Um eine Breite einzustellen, müssen Sie diese einstellendisplay:block
und dann einige Änderungen vornehmen, um sie richtig zu positionieren (wahrscheinlich mitfloat
)quelle