У меня есть следующий маленький образец:Ошибка IE9? Загадочно растет DIV
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
<style type="text/css">
table.Sample { width: 600px; table-layout: fixed; }
table.Sample col { width: 60px; }
table.Sample td { height: 20px; line-height: 20px; padding: 0px; }
table.Sample input { width: 55px; height: 17px; padding: 0px; margin: 0px; border-width: 1px; }
</style>
</head>
<body>
<div id="scrollDiv" style="width: 400px; overflow: auto; background-color: #CCCCCC;">
<table class="Sample">
<colgroup><col /><col /><col /><col /><col /><col /><col /><col /><col /><col /></colgroup>
<tr><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr>
<tr><td><input type="text" /></td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr>
<tr><td>0</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td></tr>
</table>
</div>
</body>
</HTML>
Это работает нормально на IE8, IE10, Chrome, FireFox, Safari, ... но это ошибки на IE9.
Когда я начинаю печатать в текстовом поле, div растет в высоту. Полоса прокрутки не перемещается, но div растет ниже полосы прокрутки.
Я не могу определить высоту div в css, поскольку количество строк является переменной, и я не уверен, что полоса прокрутки будет присутствовать (поскольку число столбцов является переменным в реальном примере).
Я могу решить проблему со следующим кодом javascript, но мне было интересно, что я делал что-то неправильно, чтобы спровоцировать ошибку.
var div = document.getElementById('scrollDiv');
div.style.height = div.offsetHeight + "px";
Благодаря
ли Давать '' td' к переполнению: hidden' помочь? –
Нет, это не помогает. – Marc