html 表单中的文本框超出表单边界
text boxes in html form going beyond borders of form
我正在 HTML 中制作一个包含两个文本框和一个文本区域的表单,我希望所有三个元素共享一个公共宽度值。但是,如果我使用 width: 100%
,指的是表单宽度的 100%,文本框会延伸到表单的右边框之外。 (图中红色边框link表示表格边框)
图片:
正如您在上图中看到的,文本框超出了表单的右边框,大约是表单填充的一半。有没有办法使文本框正确显示(在表单周围有正确的填充)?
此外,仔细观察会发现 <textarea>
框的宽度略小于其他框(约 2px);但是,它被设置为相同的宽度 (100%)。知道是什么原因造成的吗?
这是我的代码:
CSS:
form
{
width: 600px;
margin: 0px auto;
padding: 15px;
border: 1px dashed red;
}
input[type=text], input[type=email], textarea
{
display: block;
padding: 10px;
font-size: x-large;
}
input[type=text], input[type=email]
{
width: 100%;
margin-bottom: 15px;
}
textarea
{
width: 100%;
}
HTML:
<form id="frmContact">
<input type="text" id="txtName" name="txtName" placeholder="Name *">
<input type="email" id="txtEmail" name="txtEmail" placeholder="Email *">
<textarea id="txtComments" name="txtComments" placeholder="Comments *"
maxlength="500"></textarea>
</form>
谢谢!
默认情况下,元素的 padding
不包含在其 width
/height
维度中。在您的示例中,元素延伸到父元素之外,因为元素的每一侧都有 10px
填充。
100%
+ 20px
!=
100%
您可以将 box-sizing: border-box
添加到元素,以便在元素的 width
/height
计算中包含 padding
。
input[type=text], input[type=email], textarea {
display: block;
padding: 10px;
box-sizing: border-box;
font-size: x-large;
}
我正在 HTML 中制作一个包含两个文本框和一个文本区域的表单,我希望所有三个元素共享一个公共宽度值。但是,如果我使用 width: 100%
,指的是表单宽度的 100%,文本框会延伸到表单的右边框之外。 (图中红色边框link表示表格边框)
图片:
正如您在上图中看到的,文本框超出了表单的右边框,大约是表单填充的一半。有没有办法使文本框正确显示(在表单周围有正确的填充)?
此外,仔细观察会发现 <textarea>
框的宽度略小于其他框(约 2px);但是,它被设置为相同的宽度 (100%)。知道是什么原因造成的吗?
这是我的代码:
CSS:
form
{
width: 600px;
margin: 0px auto;
padding: 15px;
border: 1px dashed red;
}
input[type=text], input[type=email], textarea
{
display: block;
padding: 10px;
font-size: x-large;
}
input[type=text], input[type=email]
{
width: 100%;
margin-bottom: 15px;
}
textarea
{
width: 100%;
}
HTML:
<form id="frmContact">
<input type="text" id="txtName" name="txtName" placeholder="Name *">
<input type="email" id="txtEmail" name="txtEmail" placeholder="Email *">
<textarea id="txtComments" name="txtComments" placeholder="Comments *"
maxlength="500"></textarea>
</form>
谢谢!
默认情况下,元素的 padding
不包含在其 width
/height
维度中。在您的示例中,元素延伸到父元素之外,因为元素的每一侧都有 10px
填充。
100%
+ 20px
!=
100%
您可以将 box-sizing: border-box
添加到元素,以便在元素的 width
/height
计算中包含 padding
。
input[type=text], input[type=email], textarea {
display: block;
padding: 10px;
box-sizing: border-box;
font-size: x-large;
}