PIE - Расширение для Internet Explorer 6, 7, 8 версий частично реализующее поддержку некоторых свойств стандарта CSS3. В список свойств реализованных в PIE входят:
- скругление углов элементов (border-radius)
- тень блоков (box-shadow)
- фоновые изображения для границ элементов (border-image)
- множестенные фоновые изображения
- линейный градиент в качестве фонового изображения
Все возможности, поддерживаемые PIE относятся к графике и для их эмуляции PIE использует VML (англ. Vector Markup Language - язык векторной разметки для описания векторной графики). В необходимое место подставляется VML-объект, в котором отображен необходимый графический эффект.
Библиотека PIE распространяется как в качестве .htc файла, который использует возможность Internet Explorer обрабатывать поведения для стилей, используя свйоство behaviour, так и в качестве JavaScript бибилотеки. Обе версии имеют своим достоинства и недостатки, хотя разоработчики рекомендуют использовать .htc версию.
| PIE.htc | PIE.js | |
|---|---|---|
| Домен | где находится html страница | любой |
| MIME-заголовок | необходим корректный MIME-заголовок text/x-component |
неважно, браузер понимает JavaScript файлы и с неправильным mime типом |
| Подключение | дополнительное css свойство | JavaScript код |
| Загрузка и обработка | Асинхронная | Последовательная (отрабатывается после загрузки всей страницы) |
| Применение | Автоматическое для всех элементов, удволетворяющих css правилам | Невозможность автоматического применения для динамически добавленных DOM элементов |
| Использование | .css
#element {
background: #aaaaaal
padding: 10px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
behavior: url(PIE.htc);
}
|
.css
#element {
background: #aaaaaal
padding: 10px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.html
<script type="text/javascript" src="PIE.js">
</script>
<script>
$(function() {
$('.rounded').each(function() {
PIE.attach(this);
});
});
</script>
|
border-radius, -pea-border-radius
PIE полностью поддерживает реализацию свойства border-radius из спецификации CSS3 Backgrounds and Borders. Правда обрабатывается только ссокращенный синтаксис - border-radius (свойства отдельных углов border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-top-left-radius не обрабатываются). Так же библиотека понимают свойство -pie-border-radius и если присутствуют обе записи, то предпочтение будет отдаваться свойству -pea-border-radius.
box-shadow, -pie-box-shadow
border-image
background, -pie-background
-pie-watch-ancestors
-pie-png-fix
Данное свойство позволяет автоматически решить проблему IE6 с отображение полупрозрачных PNG файлов.
-pie-lazy-init
Данное свойство, позволяет отложить обработку все элементов на странице при загрузке, а ограничиться только видимой областью. Таким образом возможно сократить время первичного отображения. Остальные элементы буду инициализироанны только после того, как попадут в видимоу область.
-pie-poll
Домашняя страница: http://css3pie.com/
Бибилотека: http://css3pie.com/download-latest
Репозитрий: https://github.com/lojjic/PIE
Twitter: http://twitter.com/css3pie