Как мне получить div в ячейках таблицы, чтобы они занимали всю высоту ячейки?
Установка высоты div = 100% не будет работать, если ячейка таблицы не имеет фиксированной высоты, но я не могу этого сделать, потому что ячейки должны иметь высоту жидкости в зависимости от переменного содержимого.
Я пытаюсь сделать так, чтобы все div в каждом ряду были одинаковыми по высоте.
Код ниже, см. Живой пример на
http://www.songtricks.com/CellDivBug.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
td
{
padding:0px;
vertical-align:top;
height:auto;
}
.box
{
margin:0px;
border:solid 2px red;
height:100%;
}
</style>
</head>
<body>
<table border="1" width="50%">
<tr>
<td width="50%">
<div class="box">
This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text. This box has a lot of text.
</div>
</td><td width="50%">
<div class="box">
This box has a little text.
</div>
</td>
</tr>
</table>
</body>
</html>
После нескольких исследований и экспериментов я нашел единственное решение, использующее CSS. Я слишком новичок, чтобы отвечать на свой вопрос, поэтому я публикую его здесь.
В основном состоит из:
- Положить положение: относительно ячейки таблицы
- Позиционная позиция: абсолютная; верх: 0; Слева направо: 0; право: 0; внизу: 0; на содержащиеся div
- Поместите содержимое непосредственно в ячейку, рядом с div, а не внутри нее, чтобы заставить ячейки принимать высоту содержимого
См. Демонстрацию на
http://jsfiddle.net/ehLVM/