我的textarea
遇到了一个奇怪的问题,即使在移除了所有样式后,我仍然在textarea
周围留下了剩余的空间。
在下面的示例中,我删除了textarea中除默认2px padding
之外的所有样式。填充/焦点上的填充变为0px
,但您仍然可以看到1px
的剩余空间。
我试过了:
padding: 0;
outline-offset
更改为0
但无济于事..
问题
来自哪个额外像素/空间?
演示:
.container {
height: 200px;
width: 500px;
background: steelblue;
}
textarea {
resize: none;
height: 100%;
width: 100%;
margin: 0;
padding: 2px; /* textarea default padding */
border: 1px solid red;
overflow: auto;
-webkit-box-shadow: none;
-moz-box-shadow: none;
border-radius: 0;
background: rgba(255, 255, 255, 0.5);
}
textarea:focus,
textarea:active {
outline: none;
padding: 0;
}

<div class="container">
<textarea></textarea>
</div>
&#13;
答案 0 :(得分:2)
你的textarea
宽度大于container
:100%+ 2px的边框+ 2px左边距+ 2px右边边距
在box-sizing: border-box;
中使用了textarea
。
box-sizing 属性允许我们在元素的总宽度和高度中包含填充和边框。
.container {
height: 200px;
width: 500px;
background: steelblue;
}
textarea {
resize: none;
height: 100%;
width: 100%;
margin: 0;
padding: 2px; /* textarea default padding */
border: 1px solid red;
overflow: auto;
-webkit-box-shadow: none;
-moz-box-shadow: none;
border-radius: 0;
background: rgba(255, 255, 255, 0.5);
box-sizing: border-box;
}
textarea:focus,
textarea:active {
outline: none;
padding: 0;
}
&#13;
<div class="container">
<textarea></textarea>
</div>
&#13;
答案 1 :(得分:1)
只需在box-sizing: border-box;
textarea
即可
textarea {
resize: none;
height: 100%;
width: 100%;
margin: 0;
padding: 2px; /* textarea default padding */
border: 1px solid red;
overflow: auto;
-webkit-box-shadow: none;
-moz-box-shadow: none;
border-radius: 0;
background: rgba(255, 255, 255, 0.5);
box-sizing: border-box; // Added
}