Как я могу заставить работать аддон JQuery "Закругленные углы"?(или предложите лучший вариант) - PullRequest
1 голос
/ 03 апреля 2012

У меня проблемы с получением библиотеки JQuery "Закругленные углы" для работы в IE.Все, что я хочу сделать, это смоделировать границы радиуса на div в Internet Explorer.Я получил аддон для работы в Firefox, но я думаю, что это потому, что этот аддон использует в своих интересах это свойство CSS.Я также получил его для работы в IE, но только на основных DIV.

Вот домашняя страница аддона: http://jquery.malsup.com/corner/

Вот код:

CSS

<style>
#mydiv { /*basic CSS for the DIV*/
    border: 1px solid #76B4EA;
    border-bottom: none;
    box-shadow: inset -10px 10px 30px #e0e0e0, 2px -2px 1px #707070;
    background: #fff;
    width: 200px;
    height: 80px;
    margin-top: 21px;
    z-index: 3;
    margin-left:2px; 
    position: absolute
}
#ie-shadow { /*code for a cross-browser shadow*/
    display: none;
}
</style>
<!--[if lte IE 8]>/*more code for the cross-browser shadow*/
<style>
#ie-shadow {
    display: block;
    position: absolute;
    top: 17px;
    left: 2px;
    width: 200px;
    height: 80px;
    z-index: 1;
    background: #000;
    filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='2', MakeShadow='true', ShadowOpacity='0.40');

}
</style>
<![endif]-->

HTML

<div id="mydiv"></div>
<div id="ie-shadow">&nbsp;</div>

Javascript

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://malsup.github.com/jquery.corner.js"></script>
<script type="text/javascript">
$('#mydiv').corner("rounded top 10px keep cc:transparent");
</script>

1 Ответ

6 голосов
/ 03 апреля 2012

Я собираюсь предложить лучший вариант: PIE.htc.

Загрузите его здесь: http://css3pie.com/

ИСПОЛЬЗОВАНИЕ

Извлечениефайл PIE.htc в корневой каталог.В вашем CSS вы можете сделать следующее:

.round-em {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
  behavior: url('PIE.htc');
}

ПРИМЕЧАНИЕ: Расположение файла PIE.htc относительно файла HTML, а НЕ файла CSS.Кроме того, вы можете использовать ТОЛЬКО сокращение border-radius.Вы не можете указать border-top-left-radius, например, при использовании хака для IE.

Вы можете сделать еще один шаг, добавив условный IE (PIE.htc не очень хорошо работает с IE9 +):

.round-em {
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
}

<!--[if lt IE 9]> .round-em { behavior: url('PIE.htc'); } <![endif]-->

EDIT

Поскольку вы не можете загрузить скрипт PIE.htc по доменам, вы можете использовать PIE.js.Вот ссылка: http://css3pie.com/documentation/pie-js/

Здесь доступна размещенная версия: http://cdnjs.cloudflare.com/ajax/libs/css3pie/1.0beta5/PIE.js

КАК ИСПОЛЬЗОВАТЬ PIE.JS

Первыйвызовите скрипт через условное выражение IE:

<!--[if lt IE 9]> <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/css3pie/1.0beta5/PIE.js"></script> <![endif]-->

Затем используйте jQuery для итерации каждого из элементов, имеющих round-em в качестве класса.Затем используйте метод PIE.attach и передайте контекст this в качестве параметра.

$(function() {
  if (window.PIE) {
    $('.rounded').each(function() {
      PIE.attach(this);
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...