{overflow: hidden} и {position: relative} в IE
- Опубликовано:
В IE 6/7 абсолютно (position: absolute) или относительно (position: relative) позиционированные блоки имеют обыкновение игнорировать правило overflow: hidden содержащего их элемента (контейнера) и преспокойно выступать за пределы его границ.
Для решения этой проблемы достаточно задать относительное позиционирование (position: relative) самому контейнеру. Приведённый пример это иллюстрирует.
- CSS:
/* дочерний элемент */
#child {background: #ссс; position: relative; top: -25px; }
/* содержащий его контейнер */
#parent {overflow: hidden; position: relative; height: 50px; }- HTML:
<div id="parent"><div id="child">example</div></div>
Комментарии | добавить
только вот одним overflow: hidden; дело не ограничиваеться.
У IE вообще Много проблем с позиционирование. Напрмиер position: relative; плохо себя ведёт относительно документа, если менять размер окна или размер родительского элемента через js.
К счастью многие проблемы решаються вышеупомянутым способом.
Очень много багов лечится position:relative;
Проблема только в шестерке или семерка тоже шалит?
Я пока не нашёл положительных сдвигов в седьмой версии. Надеемся, что хотябы в IE8 ситуация кардинально поменяться.
а что, если и этот хак не помогает?
у парента
background-color:#424242;
background-image:url(../postBG.gif);
background-repeat:repeat-x;
border:1px solid Black;
float:left;
margin:0 5px 5px 0;
position:relative;
width:160px;
у вложенного чаилда
background-image:url(../postHeadBG.gif);
background-repeat:repeat-x;
color:White;
font-size:12px;
line-height:25px;
overflow:hidden;
padding-left:5px;
position:relative;
white-space:nowrap;
Василий: у вас правило
{overflow: hidden}задано для дочернего блока вместо родительского.сорри
я плохо пояснил
текст, который должен скрываться при "невлезании" находится в дочернем
который в свою очередь органичен роительским
так вот
из за текста дочерний "разрывает" родительский
В IE6 правило
{overflow: hidden}имеет смысл только при явном указании одного из измерений (ширины или высоты). У вас ширина иoverflowзаданы для разных элементов.спасибо
я думал внешний конейнер "сожмет" внутренний и ограничит его
буду знать
а если парент должен быть абсолютным?
Switch: абсолютное позиционирование родительского элемента в описанном отношении приводит к тому же результату, что и относительное — проблема как таковая просто не возникает.
ААА респект большущий!
Спасибо, помогло!
пс: отличная форма ответов)
большое спасибо. помогло )
С вылезанием содержимого дива за его пределы помогло. Но у меня почему-то еще один баг вылезает, аккурат в IE 7 (в восьмом и в браузерах нормально). А именно начинают пропадать картинки (они таблицей выводятся) и появляется только при наведении на ссылку под картинкой.
Всеравно, спасибо за совет, помогло ;)
Ааа, все, разобрался и с пропаданием картинок =) Вот я дурак, надо было всего лишь зафиксировать ширину этого div'a =)
Да, я с этим overflow в своё время о х как намучался :(
Спасибо огромное. Благодаря вашей подсказке я могу пойти уже домой
Ураааа!!! Получилось!!! Спасибо огромное!
Как говорится, век живи - век учись))