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