12 августа 2008 ~ 12 Комментариев

Динамический css

Browsers-small

При подгонке сайтов до единого вида во всех браузерах, верстальщик использует не один css хак.

Но зачем обычному пользователю с IE получать избыток кода для других браузеров firefox, opera, safari?!

Это проблема легко решается с помощью динамического css.

Первый раз я услышал о динамических css стилях на сайте cms «ModX», но так как эта cms меня не устраивала, я не стал вникать и в динамические стили.

На сегодняшний день существует отличное готовое решение для генерирования динамических css файлов под названием «Conditional-CSS». Оно имеет открытый код и распространяется под лицензией CDDL license.

Приведу пример css кода с использованием «Conditional-CSS»:

[if IE].container {
     height: 100%;
     width: 100%;

     [if IE 7]background: url('ie7.png') no-repeat center center;
     [if lte IE 6]background: url('ie.jpg') no-repeat center center;
}

[if Webkit].container {
     height: 70px;
     width: 400px;
     background: url('webkit.png') no-repeat center 30px;

}

[if Opera].container {
     height: 60px;
     width: 100%;

     background: url('opera.png') no-repeat center 10px;

}

Это работает так — для пользователя, к примеру, браузера opera будет отдаваться код только для браузера опера.

Основные конструкции:

  • [if {!} browser]
  • [if {!} browser version]
  • [if {!} condition browser version]

Поддерживаемые браузеры:

  • IE - Internet Explorer
  • Gecko - Gecko браузеры (Firefox, Camino etc)
  • Webkit - Webkit браузеры (Safari, Shiira etc)
  • Opera
  • IEMac - Internet Explorer для Mac
  • Konq - Konqueror
  • IEmob - IE мобайл
  • PSP - Playstation Portable
  • NetF - Net Front

Ну и конструкции для версии:

  • lt - Ниже
  • lte - Ниже или равно
  • eq - Равно
  • gte - Выше или равно
  • gt - Выше

Conditional-CSS написан на трех языках: PHP, С, С#. Мой выбор конечно падает на родной любимый php.

Более подробно с этой библиотекой вы можете ознакомится на офиц. сайте, ссылка указана ниже.

Пример использования

Официальный сайт «Conditional-CSS»

12 Комментариев для “Динамический css”

  1. Дмитрий 12 августа 2008 at 16:50 Permalink

    Спасибо, добавим в копилку опыта)
    Полезно.

  2. dip 12 августа 2008 at 20:06 Permalink

    Усложнение по-моему, дополнительные стили для ИЭ прописываются очень легко и без такой заморочки, а во всех остальных можно добиться максимального совпадения…

  3. Алексей 13 августа 2008 at 0:37 Permalink

    спасибо. интересно.
    Только не совсем понял юмор по-поводу «обычного пользователя IE» и «избыток кода для других браузеров».
    В моей практике получается совсем наоборот. Пишеться код для «обычного пользователя для FF, Op, Sa» а потом добавляется «избыток кода» для не совсем «обычных» пользователей IE.

    P.S. Правда, я тут тоже погорячился: «не совсем обычный пользователь IE» – это я про IE6 говорил ;)

  4. Я собственной персоной 13 августа 2008 at 11:56 Permalink

    спасибо. интересно.
    Только не совсем понял юмор по-поводу «обычного пользователя IE» и «избыток кода для других браузеров».
    В моей практике получается совсем наоборот. Пишеться код для «обычного пользователя для FF, Op, Sa» а потом добавляется «избыток кода» для не совсем «обычных» пользователей IE.

    P.S. Правда, я тут тоже погорячился: «не совсем обычный пользователь IE» – это я про IE6 говорил ;)

    Ну это был простой пример.
    К примеру, пользователю IE не нужен хак для сафари, так же как и Safari хак для IE ;-)

  5. marapper 13 августа 2008 at 12:40 Permalink

    Да, вещь отличная. Конечно, можно заморочиться и сделать верстку одинаковой для большего количества браузеров, но это не спасает. И все же двойная ситуация. Абстракция от кроссбраузерной верстки – одновременно плюс, но так же и минус.

  6. jeenart 14 августа 2008 at 2:38 Permalink

    Спасибо. Пригодится.

  7. Sicon 22 августа 2008 at 3:34 Permalink

    ррр… месяц назад то же самое написал на пхп :)

  8. Bart 4 сентября 2008 at 0:07 Permalink

    Неплохая статья, возьму на заметку.
    Кто то сталкивался с отправкой заголовков для CSS файлов?
    (для кеширования документов браузерами)

  9. Chuuuvi 17 октября 2008 at 0:17 Permalink

    Очень много времени трачу на подгонку верстки и дизайна под различные браузеры. Знающие люди, дайте ссылку на какой нибудь полезный архив по хакам и тому подобным вещам, чем сами пользуетесь.

  10. Кос 26 ноября 2008 at 20:02 Permalink

    Очень много времени трачу на подгонку верстки и дизайна под различные браузеры. Знающие люди, дайте ссылку на какой нибудь полезный архив по хакам и тому подобным вещам, чем сами пользуетесь.

    ничем особым не ользуюсь, опытом разве что.

    А статья гут! делаем в моске закладочку ))

  11. Klewer 7 июня 2009 at 18:15 Permalink

    Статье год, а я только что ее нашел, сайт перекосило в эксплорере. В опере и мазиле все ок, нашел эту статью, но пока не понял что к чему в динамических css. пойду искать дальше :) успехов!

  12. Patriott 23 ноября 2009 at 13:03 Permalink

    оперу на помойку! Сначала не понравилась как пользователю, через 3 года как сайтоделателю. В общем лажа полная.


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