Как загрузить пирог css3 только для ie7 и 8? Но не на 9

Это CSS, чтобы использовать CSS3 PIE

border: 1px solid #696;
padding: 60px 0;
text-align: center; width: 200px;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
background: #EEFF99;
behavior: url(/PIE.htc);

Специально

behavior: url(/PIE.htc);

Мой вопрос: будет ли этот PIE.htc загружаться всеми браузерами или только в IE 7 и 8?

Мне нужно показать угол в IE7 и 8 тоже. Поэтому я подумал, что вместо использования Modernizr и написания другого класса и изображения для круглого угла, CSS3 PIE будет хорошим решением, потому что всякий раз, когда мы изменим цвет, толщину границы и высоту элемента, PIE.htc будет отображаться одинаково в IE7 и 8 без, но в случае с Modernizr и и image нам придется использовать загрузку нового изображения для нового, нам придется изменить и загрузить новое изменение.

И поскольку я использую Modernizr только для этого, я не могу загрузить условный комментарий, он загрузится для каждого браузера, даже если мне это не нужно. Поэтому я подумал, что CSS3 PIE хорош для гибкости, и если он будет загружаться только в IE7 и 8, это будет хорошо для использования в этом конкретном случае.

1 ответ

Решение

behavior не является допустимым свойством CSS и будет игнорироваться браузерами, отличными от Internet Explorer. Они не будут загружать файл PIE.htc.

Вы упоминаете, что не можете загрузить условный комментарий, но если вы можете использовать условные комментарии (?), Вы можете сделать следующий трюк:

<!doctype html>
<!--[if IE 7]><html class="ie7"><![endif]-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->
<head>

В этом случае вы используете условные комментарии, но вы ничего не загружаете внутри комментариев. Вы просто добавляете специфичный для браузера класс к <html>-элемент. Теперь вы можете сделать это в своем CSS:

.some-class {
  border-radius: 12px;
}
.ie7 .some-class, .ie8 .some-class {
  behavior: url(/PIE.htc);
}
Другие вопросы по тегам