Jump to content
  • 0

таблицы+ ie7+ (chrome + FF)


tt48
 Share

Question

Доброго времени суток.

Задача следующая - сделать слой высотой {100% - 90px снизу - 90px сверху}

Нужна стабильная работа под ie7 и дальше.

http://www.beavers-net.narod.ru/primers/tableXie7.html

Проблемы две -

1) ie7 ни за что на свете не желает делать врехнюю и нижние строки таблицы по 90px;

2) Chrome, FF3.6 не хотят отображать абсолютно позиционированный слой внутри релативной ячейки.

Слой занимает в данном случае 100% от экрана и идет поверх всей таблицы.

Про box-sizing помню.. но не знаю его эквивалента под ie

Заранее спасибо.

С уважением, Олег.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
2) Chrome, FF3.6 не хотят отображать абсолютно позиционированный слой внутри релативной ячейки.

И правильно делают ибо так положено по спеке.

Ваша проблема решается без таблиц:


<div style="height: 90px; background: red;">
Header
</div>

<div class="body" style="position: absolute; top: 90px; bottom: 90px; overflow: auto; width: 100%;">
Body
</div>

<div style="height: 90px; background: red;">
Footer
</div>

Для ИЕ7 надо будет написать экспрешн:


<!--[if lte IE 7]>

<style type="text/css">

.body {
height: expression(document.body.clientHeight - 180 + 'px'); /* 90 + 90 = 180 */
}

<![endif]-->

UPD: Чёт ща подумал... Наверное ИЕ7 поймет и без экспрешна, хотя хз.

UPD2: Если все-же хочется таблицей, то надо просто сменить доктайп на Transitional (или вообще на HTML4). При XHTML Strict в ИЕ7 таблицы себя дебильно ведут.

  • Like 1
Link to comment
Share on other sites

  • 0

Для таблиц отдельные правила чтоли?(по поводу слоёв абсолютных)

Если можно - ткните носом, а то я сам не найду и так и останется шаманством.

http://www.w3.org/TR/CSS21/visuren.html#comp-abspos

С утра как раз думал о таком решении)

Таблица изначально только ради IE придумывалась.

Expression потребуется для IE6.

В IE7 и так работает замечательно.)

Спасибо большое за столь полезную информацию - пополню копилку)

С уважением, Олег.

Edited by tt48
Link to comment
Share on other sites

  • 0
Для таблиц отдельные правила чтоли?(по поводу слоёв абсолютных)

Если можно - ткните носом, а то я сам не найду и так и останется шаманством.

9.2 Controlling box generation

Not all block container boxes are block-level boxes: non-replaced inline blocks and non-replaced table cells are block containers but not block-level boxes.

Затрудняюсь перевести эту игру слов и полёт мысли автора :) Но смысл такой что ячейки таблицы хоть и блоки, но не такие как дивы, параграфы и т.п. элементы. Короче таблицы особенные.

  • Like 1
Link to comment
Share on other sites

  • 0

Всё должно решиться простым путём. Добавлением ячейкам блочности.

И правильно делают ибо так положено по спеке.

Ваша проблема решается без таблиц:


<div style="height: 90px; background: red;">
Header
</div>

<div class="body" style="position: absolute; top: 90px; bottom: 90px; overflow: auto; width: 100%;">
Body
</div>

<div style="height: 90px; background: red;">
Footer
</div>

Для ИЕ7 надо будет написать экспрешн:


<!--[if lte IE 7]>

<style type="text/css">

.body {
height: expression(document.body.clientHeight - 180 + 'px'); /* 90 + 90 = 180 */
}

<![endif]-->

UPD: Чёт ща подумал... Наверное ИЕ7 поймет и без экспрешна, хотя хз.

Да, в ИЕ7 эта хрень пашет изначально, что странно)

Link to comment
Share on other sites

  • 0

Добавление ячейкам блочности решает проблему с позиционированием слоя в хроме,

но добавляет проблему со схлопыванием ячейки до автоматической высоты(при height:100%) в Опере 11.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy