在 Chrome、Firefox 和 IE 中试用此代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Textarea problem</title>
<style type="text/css">
html, body {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
border: 0; padding: 0; margin: 0;
}
#container {
position: absolute;
top: 4px;bottom: 4px;
right: 4px;left: 4px;
background-color: grey;
}
#ta {
position: absolute;
bottom: 0; right: 0;
top: 0; left: 0;
/*width: 100%; height: 100%;*/
border: black 4px solid; padding: 0; margin: 0;
background-color: orange;
padding: 8px;
}
</style></head>
<body>
<div id="container">
<textarea id="ta" >This textarea should fill the window. But FF and IE leave the dimensions at the defaults! This happens when the corner offsets are specified; not when width and height are specified. But 100% width and height do not play with the box model when using padding and borders. </textarea>
</div>
</body>
</html>
我注意到输入也会发生这种情况。它们不会像普通块元素那样响应顶部/底部和左/右隐含的尺寸。
我的解决方法是将边框和填充放在容器上,并将 textarea 位置设置为相对,将宽度/高度设置为 100%。但这并不完美,因为 textarea 的滚动条位于填充内,从 UI 角度来看(对我来说)这是不可接受的。
有什么我想念的吗?如何使 FF/IE 中的 textareas 上/右/下/左工作?