Я создаю таблицу HTML и использую Internet Explorer 11. В каждом TR есть несколько TD со встроенными элементами разного размера. Я проверил страницу через IE DOM Explorer и думаю, что знаю, что происходит. Как правило, textarea является самым большим элементом (в 167 пикселей по CSS), но иногда один из других элементов td будет больше (например, td1 = 300px). Проблема в том, что я хочу, чтобы область текста заполнялась до 300 пикселей. Я вижу, что высота наследуется от td id = "td3", которая по-прежнему равна 167px. Есть ли способ получить td id = "td3", чтобы получить высоту от самого большого sibling td в tr.
HTML выглядит примерно так:
<thead>
...
</thead>
<tbody>
<tr>
<td id="td1">[Dynamic Text1]</td>
<td id="td2">[Dynamic Text2]</td>
<td id="td3"><textarea class="ta"></textarea></td>
</tr>
<tr>
...
</tr>
<tr>
....
</tbody>
CSS
.ta{
height: 100%;
min-height: 167px
}
Одна вещь, я замечаю, что Chrome делает то, что я хочу, но я бы предпочел решение, соответствующее стандартам
Убедитесь, что у вас нет ошибок HTML (попробуйте выполнить проверку с помощью w3.org validator). Это часто является причиной ошибок отображения, возникающих между различными механизмами рендеринга. Во всяком случае, ваш пример, кажется, отлично работает здесь:
td {
min-height: 200px;
background: lightblue;
vertical-align: top;
}
textarea {
display: block;
height: 100%;
min-height: 50px;
}
</td>
, а не<t/td>
(2) вы не закрыли тег textarea, используйте</textarea>
(3) не правильно закрыл третийtd
. (4) Вам нужна точка с запятой после строкиmin-height
. Исправление всех этих ошибок заставляет его работать правильно.