我以为我们基本上已经过去了这种事情,但我发现了 Firefox 和 IE 与 Chrome 的显示方式不一致(可能是你们所有的 CSS 半神都知道的)。
在这里看看这个 jsfiddle:http: //jsfiddle.net/smithkl42/jmgEV/1/
div.parent{
position:relative;
height:200px;
width:400px;
background-color:blue;
}
textarea.child{
position:absolute;
height:30px;
bottom:2px;
left:2px;
right:2px;
}
在 Chrome 中,它做了我想要的,即<textarea>
在其父 div 的底部显示 ,并与父 div 一样宽。但在 FireFox 和 IE 中,它会忽略该right:2px
行,而只是给它默认宽度。
如果我<textarea>
用 a替换<div>
(见这里,它的行为方式就是我想要的。
知道为什么吗?
编辑:感谢所有建议。我应该注意到父元素(在现实世界中,而不是在我的小提琴中)将改变大小,所以我不能使用任何建议,“只需手动设置宽度”。例如,无论其父元素是 1200 像素宽还是 50 像素,我都需要它距左右边缘正好两个像素。因此,将其设置为 % 之类的东西,如果主要是固定宽度,它将起作用,不会不在这里工作。有关其他评论,请参见下文。