aerate.ru → Круглые углы в IE 8

Как бы было замечательно, если бы можно было написать class="round"; и углы волшебно закруглялись.

У нас на hh.ru так и сделано: у блока с классом b-round круглые углы получаются благодаря -moz-border-radius и -webkit-border-radius для Firefox, Chrome и Safari, SVG для Opera и с помощью expression для IE 6 и 7 версий.

И все бы хорошо, не выпусти Microsoft броузер IE 8, в котором не работают expression и не поддерживается CSS 3.
К счастью прилично поддерживается CSS 2.1, чем я и воспользовался при поисках метода создания круглых углов без использования дополнительных элементов.

Пример работает в IE 8
Не забудьте отключить режим совместимости
левые верхний и нижний углы правые верхний и нижний углы
Такие спрайты используются для отрисовки углов
А теперь CSS. Только для IE 8!

Кстати этот код отлично работает в Опере, что при необходимости позволит отказаться от SVG.

Есть и ограничения, как без них...

  • Нет возможности положить в блок background-image. Фон уже занят одним из углов
  • Прозрачные углы возможны лишь для блока с заведомо известной высотой или шириной
  • при наличии у блока padding-top: > 0, придется ставить верхние углы руками. А все из за того, что нельзя дать .block:before {position: absolute} =(

И на закуску баг:

Углы лежащие в background блока и в first-letter (верхний левый угол) должны быть в одном спрайте, иначе background блока отображаться не будет.

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

Не будет публиковаться