19 января 2008 ~ 32 Комментария

Закругленные уголки с помощью VML и CSS3

jsdhfksdfsd

Наткнулся на очень интересный вариант решения очень популярной проблемы многих веб-мастеров — закругление блоков.

Для этого варианта закругления используются VML и CSS3.

Решение без картинок, работает во всех Internet Explorer'ах включая 5ый, в Firefox, в Safari, но к сожалению в старых версиях Opera не работает.


VML(англ. Vector Markup Language — язык векторной разметки) разработан фирмой Microsoft для описания векторной графики. ©wikipedia

Не буду тянуть и сразу покажу Вам css код:

v\:roundrect {
     color:#FFF;
     display:block;
     background-color:#000;
     padding:20px;
     height:100%;
     /* Для закругления уголков в остальных браузерах */
     -moz-border-radius:10px;
     -webkit-border-radius: 10px;
     border-radius: 10px;
     }

/* Для ie */
v\:roundrect  {
     behavior:url(#default#VML);
     /background-color:transparent;
     }

Eagle Eye film Наверное вы уже поняли, этот css код для закругления уголков в IE использует VML, а для остальных браузеров использует CSS3.

 

Теперь код самих блоков:

<!-- Подключаем VML  -->
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" />

<v:roundrect arcsize=".04" fillcolor="#000">
Привет, я закругленный блок!
</v:roundrect>

Поясню этот код. Первая строчка подключает VML. Параметр блока arcsize отвечает за радиус закругления, fillcolor отвечает за фон блока.

 

Не буду утверждать, что этот способ наиболее правильный, но он тоже интересен и имеет право на жизнь.

Посмотреть демо

Прочитать статью со всем нюансами

The Others on dvd

32 Комментария для “Закругленные уголки с помощью VML и CSS3”

  1. Артём Курапов 19 августа 2008 at 15:41 Permalink

    Если внедрять этот xml:namespace блок то вроде это не валидный xhtml получается. Генерить через яваскрипт тоже некрасиво и излишне

  2. grossu 19 августа 2008 at 15:43 Permalink

    В Опере 9.51 не работает. А так все красиво реализовано.

  3. CodeIgniter 19 августа 2008 at 16:09 Permalink

    В Опере 9.51 не работает. А так все красиво реализовано.

    Работает. Везде работает кроме соответстенно IE6

  4. Сергей 19 августа 2008 at 16:37 Permalink

    У меня тоже в Опере 9.5 не работает=(

  5. Алексей 19 августа 2008 at 16:44 Permalink

    и у мну не работает. мож какое шаманство надо заюзать?

  6. Rii 19 августа 2008 at 16:45 Permalink

    И в Опере 9.21 тоже не работает..

  7. drw 19 августа 2008 at 18:56 Permalink

    а в FF вообще жесть. блок сам по себе, текст под блоком сам по себе )

  8. melik 19 августа 2008 at 20:19 Permalink

    А зачем это надо сейчас, если это не работает на основных броузерах?

  9. DM хелпер 19 августа 2008 at 22:54 Permalink

    И в Опере 9.21 тоже не работает..

    чуваки ведь написано что не работает в Опере, чожь постить это по несколько раз )) ?

    лучше бы нашли хак чоб заработало

  10. Я собственной персоной 19 августа 2008 at 22:55 Permalink

    А зачем это надо сейчас, если это не работает на основных броузерах?

    Во-первых сейчас основной браузер это IE и в нем работает.
    Во-вторых он работает в Firefox 3 и Safari.
    В-третьих важно не количество браузеров в котором это работает, а оригинальность решения.

  11. DM хелпер 19 августа 2008 at 22:57 Permalink

    А зачем это надо сейчас, если это не работает на основных броузерах?

    как по мне это хороший толчек к побуждению в области дальнейшей разработки

  12. melik 20 августа 2008 at 0:31 Permalink

    Во-первых сейчас основной браузер это IE и в нем работает.
    Во-вторых он работает в Firefox 3 и Safari.
    В-третьих важно не количество браузеров в котором это работает, а оригинальность решения.

    как по мне это хороший толчек к побуждению в области дальнейшей разработки

    Ну с одной стороны я согласен с вами.
    Но почему-то ie7, правда запущенный через эмуляцию винды на маке отказался показывать вообще что-либо.
    Опера, я так понимаю, тоже не очень хочет это показывать.

  13. Я собственной персоной 20 августа 2008 at 2:02 Permalink

    Опера, я так понимаю, тоже не очень хочет это показывать.

    В опере вообще не работает, опера не поддерживает не VML, не CSS3, но зато уголки в опере можно сделать с помощью SVG.

  14. sevenov 20 августа 2008 at 4:22 Permalink

    Способ, возможно, оригинальный, но редкостно не кроссбраузерно и очень не красиво

  15. Richard Ferlow 20 августа 2008 at 16:11 Permalink

    В опере и Ие не работает, выходит что способ использовать не комильфо :)

  16. DM хелпер 20 августа 2008 at 16:32 Permalink

    Опера, я так понимаю, тоже не очень хочет это показывать.

    В опере вообще не работает, опера не поддерживает не VML, не CSS3, но зато уголки в опере можно сделать с помощью SVG.

    а примерчик можно лицезреть?

  17. Я собственной персоной 20 августа 2008 at 16:52 Permalink

    а примерчик можно лицезреть?

    Вроде бы вот — http://elv1s.ru/files/html+css/vector-corners.html

  18. DM хелпер 20 августа 2008 at 23:29 Permalink

    а примерчик можно лицезреть?

    Вроде бы вот — http://elv1s.ru/files/html+css/vector-corners.html

    прелестно !

    кто может возразить?

  19. Sicon 22 августа 2008 at 3:36 Permalink

    VML – очередное «изобретение» Micro$oft?

  20. sevenov 22 августа 2008 at 16:10 Permalink

    VML – очередное “изобретение” Micro$oft?

    http://ru.wikipedia.org/wiki/VML

  21. Старый читатель 22 августа 2008 at 17:55 Permalink

    В новой версии оперы (9.52) не работает.

  22. Я собственной персоной 22 августа 2008 at 18:22 Permalink

    В новой версии оперы (9.52) не работает.

    Угу. Оказалось, что опера так и не начала поддерживать css3, даже в новых версиях.

    А я ошибочно полагал, что это не так.

  23. enternet 4 сентября 2008 at 19:29 Permalink

    Я об этом уже давно написал. http://blog.ad.by/2008/03/nice-rounded-corners-for-ie-safari.html
    А товорищ BOLK недавно добавил ещё и SVG, чтобы это и в опере работало.
    http://bolknote.ru/2008/07/18/~1786

  24. Я собственной персоной 4 сентября 2008 at 19:37 Permalink

    Я об этом уже давно написал. http://blog.ad.by/2008/03/nice-rounded-corners-for-ie-safari.html
    А товорищ BOLK недавно добавил ещё и SVG, чтобы это и в опере работало.
    http://bolknote.ru/2008/07/18/~1786

    Угу, уже позже наткнулся на вашу запись, очень полезно было ее прочитать ;-)

  25. Много слышал о VML, но никак даже строчка на глаза не попадалась. ) Увидел наконец на вашем блоге. Очень интересное решение, хотя пользоваться им, конечно, сейчас вряд ли стоит.

  26. AlexPTS 6 апреля 2009 at 3:42 Permalink

    Что делать, если у блока, которому мы скругляем углы стоит картинка фоном? Картинка встает фоном всему блоку, а не по границам скругления.

    Что-то на блоге не работают у вас категории! Обратите внимание.

  27. Patriott 22 мая 2009 at 14:14 Permalink

    прием интересный, но блок получается с рамкой, причем черной, и как я понял, она не убирается и цвет ее не меняется. Иногда в дизайн не вписывается :-(

  28. 1&1 7 сентября 2009 at 8:03 Permalink

    понимаю, что на момент написания статьи IE8 не был выпущен официально, но в нём не работает данный вариант. Работает только в режиме эмуляции ИЕ7.

  29. Eddi Fisher 6 декабря 2009 at 0:29 Permalink

    в опере только с 10 версии обещают включить поддержку border-radius


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