我有下面的CSS和HTML片段正在呈现。
文本区域
{
边框:1px实体#999999;
宽度:100%;
保证金:5 px 0;
填充:3 px;
}
<div style="display: block;" id="rulesformitem" class="formitem">
<label for="rules" id="ruleslabel">规则:</label>
<textarea cols="2" rows="10" id="rules">
< / div >
问题是文本区域最终比父区域宽8px(边界为2px +填充为6px)。是否有一种方法继续使用边框和填充,但限制文本区域的总大小为父的宽度?
我在这里遇到了另一个解决方案,它非常简单:在textarea的容器中添加padding-right。这保留了文本区域的边距、边框和填充,从而避免了Beck指出的chrome和safari在文本区域周围放置焦点高亮的问题。
容器的padding-right应该是文本区域两侧的有效边距、边框和填充之和,再加上容器可能需要的任何填充。对于原题中的情况
textarea{
border:1px solid #999999;
width:100%;
margin:5px 0;
padding:3px;
}
.textareacontainer{
padding-right: 8px; /* 1 + 3 + 3 + 1 */
}
<div class=“textareacontainer”>
<textarea></textarea>
</div>