Нашето приложение използва масово таблици за оформление и позициониране и в миналото беше само IE (режим на quirks). Продължавайки напред, ние се опитваме да излезем от режима на странности и да заменим таблиците с div и по-семантично оформление.
Единственото нещо, което ни спира, е „функция“ на режима на странности, която ни позволи да зададем height=100%
на ред от таблица и редът да заеме оставащото вертикално пространство. Досега не сме успели да намерим начин да направим това извън режима на странности, със или без таблици.
Това е кодът, който използваме в тялото на страницата. Тук не е показан стил, но ефектът е същият:
<table width="100%" height="100%" border="0">
<tr>
<td>
<table width="100%" height="100%" border="1">
<tr>
<th>This is my header bar</th>
</tr>
</table>
</td>
</tr>
<tr height="100%">
<td>
<table width="100%" height="100%" border="1">
<tr>
<td>This is my main section bar</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="100%" height="100%" border="1">
<tr>
<td>This is my footer bar</th>
</tr>
</table>
</td>
</tr>
This is what it looks like in Quirks mode. Note that the middle row (with height="100%"
) has expanded to take up the remaining vertical space:
Стандартният режим изобразява същия код по следния начин:
jsFiddle с кода: http://jsfiddle.net/RBeWN/3/ (Имайте предвид, че поради към iFrames и т.н. кодът всъщност няма да се изобрази в режим на quirks на jsFiddle, но можете да го принудите с помощта на Dev Tools).
Опитах се да направя това с div
s и малко css, но не работи: http://jsfiddle.net/BVMhR/3/. Задаването на основния div на height: 100%;
му дава същата височина като неговия родител, вместо да го кара да заема оставащото място. Настройката box-sizing: border-box;
също няма значение за това.
Може ли някой да ми помогне да намеря решение на този проблем? Бих искал да мога да го направя без javascript, ако изобщо е възможно, но ако Javascript е необходим, той трябва да бъде общо решение, което може да работи на всяка страница, така че да няма твърде много разходи за разработка за настройването му.