我有一个通用表单,我想设置样式以对齐标签和输入字段。 出于某种原因,当我给标签选择器一个宽度时,没有任何反应:
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;
}
输出:
我做错了什么?
答案 0 :(得分:195)
执行display: inline-block
:
#report-upload-form label {
padding-left:26px;
width:125px;
text-transform: uppercase;
display:inline-block
}
答案 1 :(得分:34)
使用display: inline-block;
<强>解释强>
label
是一个内联元素,这意味着它只是它需要的大小。
将display
属性设置为inline-block
或block
,以使width
属性生效。
示例:强>
#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;
display: inline-block;
}
#report-upload-form input[type=text],
#report-upload-form input[type=file],
#report-upload-form textarea {
width: 305px;
}
<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>
答案 2 :(得分:6)
首先使其成为一个块,然后向左浮动以停止将下一个块推入新行。
#report-upload-form label {
padding-left:26px;
width:125px;
text-transform: uppercase;
display:block;
float:left
}
答案 3 :(得分:5)
我认为标签是内联的,因此它们不会占用宽度。也许尝试使用“display:block”并从那里开始。
答案 4 :(得分:4)
给出风格
display:inline-block;
希望这会有所帮助'
答案 5 :(得分:3)
label
的默认display
模式为inline
,这意味着它会自动调整其内容的大小。要设置宽度,您需要设置display:block
,然后进行一些操作以使其正确定位(可能涉及float
)
答案 6 :(得分:0)
label
{
display: inline-block;
}
将使您能够灵活地更改标签的宽度和自定义对齐表单。干杯