воскресенье, 15 апреля 2012 г.

Глюк CSS-свойства filter в IE7

Применение filter к элементу добавляет ему overflow:hidden в IE7  и внутренние элементы с абсолютным позиционированием, вынесенные за границы блока, становятся не видны. В 8-м ослике подобной проблемы замечено не было.


Предположим, что у нас есть следующий код.

<div class="container">
   <div class="left"></div>
     Текст
   <div class="right"></div>
</div>

И следующее позиционирование элементов:

.container { 
   position: relative; 
   overflow: visible;
}
.left, .right{ width: 10px; }
.left {
  position: absolute;
  top: 0;
  left: 0;
  margin-left: -10px;
}
.right {
 position: absolute;
 top: 0;
 right: 0;
 margin-right: -10px;
}

По сути этот код выносит .left и .right за границы блока .container. Но если мы добавим, например, градиент к блоку .container:

  1. filterprogid:DXImageTransform.Microsoft.gradient( 
  2.         startColorstr='#0295df', endColorstr='#003aa6',GradientType=0 );


то блоки .left и .right станут невидны.

В случае с градиентном можно обернуть Текст ещё в один div и просто привязать градиент к нему.

Комментариев нет:

Отправить комментарий