В IE абсолютно (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>
Откровенно детский баг Opera 8.5, 9.0, 9.1: минимальная ширина для блочного элемента внутри плавающего не учитывается при расчёте ширины последнего.
Багрепорт улетел к разработчикам.
Upd.: Проблема устранена в ветке 9.5, по меньшей мере, начиная с первой бета-версии (Build 9613).