Довольно распространенной практикой является использование Javascript для обнаружения поддержки CSS и применения исправлений. Идите прямо вперед. Риск возникает, когда вы начинаете применять буквальные исправления CSS в Javascript, например, element.style.border = '1px solid black'
, так как это будет кошмаром для обслуживания. Пока вы делаете ваши настоящие стили в своей таблице стилей, вы можете идти.
Например, Modernizr - это проект, который добавляет классы к вашему тегу body
на основе поддерживаемых технологий. Это позволяет вам использовать Javascript для обнаружения, но затем применять ваши стили в таблице стилей. (Например, Modernizr дает вам body.borderradius
, если поддерживаются закругленные углы, и body.no-borderradius
в противном случае.)
Это позволяет вам легко переключаться на другие стили, если вам это нужно. Конечно, если определенная функция не поддерживается, возможно, она не так уж и важна - возможно, вы можете в некоторой степени эмулировать ее, но действительно ли имеет значение, видят ли пользователи IE7 острые углы? Может быть, это так, но, вероятно, нет.
РЕДАКТИРОВАТЬ: Относительно тех ссылок, которые вы только что добавили: они выглядят хорошо для меня. Я бы не стал слишком сильно зависеть от них, но если вы добавите одну строчку, вы бы не смешали свои технологии значительно. На самом деле, мне скорее нравится, как проект IE-CSS3 делает это, когда вы отбрасываете эти строки в реальной таблице стилей. Это держит все вместе.