Я использую modernizr для создания альтернативных стилей для браузеров, которые не поддерживают css3. Это прекрасно работает, но я не нашел решения с классами CSS, которые используют более одного стиля CSS3.
Пример 1:
div.button {
box-shadow: inset 1px 1px 2px #ccc; /* first css3 style */
border-radius: 5px; /* second css3 style */
}
/* fallback for browsers that don't support css3 */
.no-borderradius div.button {
background: transparent url(my-button.png) left top;
}
Проблема здесь в том, что если браузер поддерживает box-shadow, но не поддерживает border-radius, вы столкнетесь с проблемами. В этом случае обе кнопки будут использовать box-shadow, игнорируя border-radius и , применяя класс no-borderradius с фоновым изображением. Я мог бы решить это, создав два запасных варианта.
Пример 2:
div.button {
box-shadow: inset 1px 1px 2px #ccc; /* first css3 style */
border-radius: 5px; /* second css3 style */
}
/* fallback for browsers that don't support css3 */
.no-borderradius div.button, .no-boxshadow div.button /* no-boxshadow added */ {
background: transparent url(my-button.png) left top;
}
Проблема здесь в том, что если браузер не поддерживает border-radius и box-shadow, то оба стиля будут использоваться для стилизации элемента, я не могу не думать, что это может вызвать проблемы?