html – 具有100%高度行和Internet Explorer 9的表
|
我有以下例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Example</title>
</head>
<BODY>
<DIV style="height:150px;background-color:#AAAAFF;overflow:auto">
<TABLE style="height:100%;width:300px">
<TR>
<TD style="background-color:orange">Text with an unknown height (22px here)</TD>
</TR>
<TR style="height:100%">
<TD style="height:100%;background-color:yellow">
<TEXTAREA style="height:100%;-moz-box-sizing:border-box" COLS=30 ROWS=4>Remaining space (150px with IE9,122px with others)</TEXTAREA>
</TD>
</TR>
</TABLE>
</DIV>
</BODY>
</html>
它使用Chrome,Firefox或Internet Explorer在奇怪的模式下工作正常,但IE9在标准模式下绘制与root div相同的文本区域.那么有没有使用JS的方法,告诉浏览器使用所有剩余空间绘制一个textarea? 有什么建议么? 解决方法
据我所知,Internet Explorer会查找已经发出hasLayout的第一个父元素来计算100%的高度.这与大多数其他浏览器不同.
Documentation on Internet Explorer’s hasLayout property:
解决你的问题的一个快捷方法可能是在你的td中添加一个包装器div元素,它模拟了td的大小,但是由于它的自然触发器hasLayout(未被测试,IE8上的jsFiddle兼容性被破坏): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Example</title>
</head>
<BODY>
<DIV style="height:150px;background-color:#AAAAFF;overflow:auto">
<TABLE style="height:100%;width:300px">
<TR>
<TD style="background-color:orange">Text with an unknown height (22px here)</TD>
</TR>
<TR style="height:100%">
<TD style="height:100%;background-color:yellow">
<div style="height: 100%; width: 100%; position: relative;">
<TEXTAREA style="height:100%;-moz-box-sizing:border-box" COLS=30 ROWS=4>Remaining space (150px with IE9,122px with others)</TEXTAREA>
</div>
</TD>
</TR>
</TABLE>
</DIV>
</BODY>
</html>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
