Нет встроенного IF / ELSE для CSS. CSS препроцессоры, такие как SASS (и Compass), могут помочь, но если вы ищете более специфичные условия для условий if / else, вам следует попробовать Modernizr . Он обнаруживает объекты, а затем добавляет классы в элемент HTML, чтобы указать, какие функции CSS3 и HTML5 поддерживает и не поддерживает браузер. Затем вы можете написать очень if / else-like CSS прямо в вашем CSS без какой-либо предварительной обработки, например так:
.geolocation #someElem {
/* only apply this if the browser supports Geolocation */
}
.no-geolocation #someElem {
/* only apply this if the browser DOES NOT support Geolocation */
}
Имейте в виду, что вы всегда должны постепенно улучшаться, поэтому вместо приведенного выше примера (который лучше иллюстрирует суть) вы должны написать что-то более похожее на это:
#someElem {
/* default styles, suitable for both Geolocation support and lack thereof */
}
.geolocation #someElem {
/* only properties as needed to overwrite the default styling */
}
Обратите внимание, что Modernizr использует JavaScript, поэтому, если JS отключен, вы ничего не получите. Отсюда и постепенный подход к совершенствованию #someElem в первую очередь как основа no-js.