CSS не имеет условных операторов, так как это не язык программирования, как Javascript. Хотя я полагаю, что в работах для CSS может быть какое-то условное утверждение.
Вам придется полагаться на JavaScript для выполнения любого условного теста для CSS.
То есть, вы не можете напрямую определить поддержку CSS.
Тем не менее, CSS имеет «хитрость» благодаря своей «каскадной» природе, но его можно использовать только при поиске замены более старого кода новым кодом для того же стиля.
Звучит смешно, вот несколько примеров:
-moz-border-radius: 6px;
-o-border-radius: 6px;
-webkit-border-radius: 6px;
-ms-border-radius: 6px;
border-radius: 6px;
В браузерах, которые поддерживают официальный CSS, он будет использовать стиль, обозначенный в строке 5. В то время как в более старых версиях, скажем, Firefox, строка 1 будет применена, а строки 2-5 будут игнорироваться, поскольку они неизвестны.
Другим (и, возможно, лучшим) примером может быть:
background-color: #AAA;
background-color: rgba(0, 0, 0, 0.5);
Этот код придает фону серый цвет, в то время как более новые браузеры придают ему черный цвет с прозрачностью 50%, переопределяя старый цвет.
Надеюсь, это немного поможет.
Ура!
- Обновление -
Я только что наткнулся на то, что могло бы помочь. В книге Аарона Густафсона «Адаптивный веб-дизайн» он упоминает, как CSS будет игнорировать все правило, если данный браузер / средство визуализации не поддерживает данный селектор.
Если использовать приведенную выше концепцию, если вы можете найти селектор, который не был реализован в более старой версии, но доступен в более новой версии, вы можете сделать что-то вроде этого:
/* fake CSS */
.sprite {
background-image: url(sprite90x38.png);
}
[[ selector that is supported by newer browser/OS ]],
.sprite {
background-image: url(sprite180x76.png);
/* 180 / 2 = 90 */
background-size: 90px auto;
}
Идея состоит в том, что для "старых" браузеров вы можете загрузить старый PNG, но для более нового браузера он загрузит больший PNG и применит размер фона.
Единственное, о чем я бы беспокоился, это если поддерживающие браузеры загружают оба изображения, но применяют одно.
И это все еще требует поиска неподдерживаемого селектора в одной версии другой. Quicksmode.com может помочь вам найти один:
http://www.quirksmode.org/css/contents.html
- ОБНОВЛЕНИЕ 2 -
Я добавил это в комментарии, но добавлю сюда, так как это может помочь. Я потратил некоторое время, пытаясь выяснить, какую версию браузера поддерживает iOS 3.1.3 и для чего можно использовать селекторы с указанным выше приемом.
Я нашел этот сайт разработчиков Apple: http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariCSSRef/Articles/StandardCSSProperties.html
Если вы выполняете поиск страницы (ctr + f) для размера фона, это показывает, что iOS 1+ поддерживает проприетарную версию под названием:
-webkit-background-size: length
-webkit-background-size: length_x length_y
Это может быть возможным решением. Если вы добавите это до реального, вы можете обеспечить обратную совместимость.
-webkit-background-size: length
background-size: length
Надеюсь, это поможет найти альтернативные решения, поскольку первоначальный вопрос о проведении условного теста, чтобы увидеть, поддерживается ли правило, в CSS сейчас невозможен.