我正在构建一个100%宽度和10px填充的文本输入,如下所示:
<div class="wrapper">
Outer element
<form method="get" id="searchform" action="#">
<input type="text" class="field" name="s" id="s" placeholder="Search here...">
<input type="submit" class="submit" name="submit" id="searchsubmit" value="GO">
</form>
</div>
CSS:
.wrapper {
background: #ccc;
padding: 20px;
width: 200px;
}
#s {
width: 100%;
display:block;
padding: 10px;
}
#searchsubmit {
display: block;
width: 100%;
padding: 10px;
}
问题是文本输入超出了包装器的宽度。 See example here
我尝试添加“box-sizing:border-box”和-moz-box-sizing:border-box“但我仍然看到输入在某些浏览器上延伸超过100%,例如Android。
有解决方法吗?
答案 0 :(得分:19)
使用box-sizing
:
#s {
width: 100%;
display:block;
padding: 10px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
注意:自IE8以来,所有主流浏览器都支持它。对于Android,请不要忘记-webkit
前缀。 More Details
答案 1 :(得分:0)
删除左右padding
。如果您需要padding
,请使用width
。
#s
{
width: 99%;
display:block;
padding: 10px 0;
}