当我向宽度为 100% 的 HTML 添加边距时<textarea>
,边距会正确应用到左侧,但整个文本框会向右移动并扩展父容器。
以这个JsFiddle为例。如您所见,textarea 超出了右侧,而不是扩展到 10px 边距。有没有什么办法解决这一问题?我能想到的唯一方法是使用javascript手动调整大小,但必须有另一种方法。
当我向宽度为 100% 的 HTML 添加边距时<textarea>
,边距会正确应用到左侧,但整个文本框会向右移动并扩展父容器。
以这个JsFiddle为例。如您所见,textarea 超出了右侧,而不是扩展到 10px 边距。有没有什么办法解决这一问题?我能想到的唯一方法是使用javascript手动调整大小,但必须有另一种方法。
您不能在不使用父元素 100% 宽度的元素上使用 100% 宽度。
在这种情况下,您需要创建一个 100% 的最大宽度,然后尝试获取一个与您应用的边距完全对应的宽度值。
当您设置width:100%
时,它被设置为 100% 到父级,但是当您添加额外的 10px 边距时,它现在完全大于父级。
我已经开始在任何固定边距或宽度上使用百分比,因此不会发生这种情况。
因此,假设没有应用填充或边框等其他内容,请尝试类似width:99%; margin:10px 0.5%;
不会溢出父元素的方法。
这是一个更新为使用百分比边距和宽度以不溢出的小提琴。
编辑
我确实想在元素具有 100% 宽度时添加任何边框或填充也会使其溢出。一个例子是 Firefox 中 textarea 的默认样式,它给它一个 2px 的插入边框 + 宽度 + 边距。
这是你想要的效果吗?在这里,我将位置设置为绝对位置并给出每个边缘的边距。
HTML
<textarea>tyjyjyj</textarea>
CSS
textarea {
position: absolute;
left: 30px;
right: 30px;
top: 30px;
bottom: 30px;
}
实际上:http: //jsfiddle.net/tTnCd/3/
为了更好地定位文本区域,您可以使用相对样式的元素将其包装起来,例如http://jsfiddle.net/tTnCd/4/