Mam ogólny formularz, do którego chciałbym nadać styl, aby wyrównać etykiety i pola wejściowe. Z jakiegoś powodu, gdy podaję szerokość selektorowi etykiet, nic się nie dzieje:
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;
}
Wynik:
Co ja robię źle?
<p>
znaczniki to naprawdę dobry pomysł?Odpowiedzi:
Zrób
display: inline-block
:http://jsfiddle.net/aqMN4/
źródło
Posługiwać się
display: inline-block;
Wyjaśnienie:
label
Jest elementem inline, co oznacza, że jest tak duża, jak to musi być.Ustaw
display
właściwość nainline-block
lubblock
, abywidth
właściwość zaczęła obowiązywać.Przykład:
źródło
label
element nie szanujewidth
właściwości, ponieważ jest elementem wbudowanym. Chciałbym podkreślić, żeinput
element jest również domyślnie elementem wbudowanym. Ale pozwala zmienić jego szerokość za pomocą właściwości width w przeciwieństwie dolabel
elementu. Stąd rozumowanie autora nie jest poprawne.Uważam, że etykiety są wbudowane, więc nie mają szerokości. Może spróbuj użyć "display: block" i stamtąd.
źródło
Najpierw uczyń go blokiem, a następnie płyń w lewo, aby przestać wypychać następny blok do nowej linii.
źródło
nadaj styl
mam nadzieję, że to pomoże
źródło
label
Domyślnymdisplay
trybem jestinline
, co oznacza, że automatycznie dopasowuje się do zawartości. Aby ustawić szerokość, musisz ustawić,display:block
a następnie zrobić trochę faffingu, aby ustawić go prawidłowo (prawdopodobnie z udziałemfloat
)źródło