Как подключить полифил для стилей
Подскажите, как можно добавить (вернее записать в другое имя) свойство, определяющее стиль? Зачем надо: есть обычные свойства, а есть с префиксами. И для кроссбраузерности обычно употребляют свойства со всеми префиксами, типа border-radius, там же -moz-border-radius, -webkit-border-radius. Так вот, если браузер поддерживает конкретное префиксное свойство, то проще записать в CSS свойство без префиксов (border-radius), а если браузер поддерживает только -webkit-border-radius, записать префиксное в свойство без префикса. Знаю как добавлять свойства типа firstElementChild. Но как подключить и от чего наследуются стили?
|
Переформулируйте вопрос. Сейчас не понятно, чего вы хотите добиться, и почему это нельзя сделать силами CSS?
|
if (document.documentElement.firstElementChild === undefined) { // (1) Object.defineProperty(Element.prototype, 'firstElementChild', { // (2) get: function() { var el = this.firstChild; do { if (el.nodeType === 1) { return el; } el = el.nextSibling; } while (el); return null; } }); } Вот код полифилла, добавляющего в IE8- свойство firstElementChild. Я хочу аналогично добавить префиксное CSS-свойство, но под именем без префикса. Можно записать в стили свойство со всеми префиксами, например <style> border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius:10px; </style> И обычно я так и делаю. Но если на странице или определенной ее части гарантированно есть JavaScript, то зачем городить такой огород? Можно ведь записать только <style> border-radius: 10px; </style> А если браузер пользователя поддерживает только -webkit-border-radius, то как в вышеуказанном полифилле, записать или скопировать в прототип свойство -webkit-border-radius под именем border-radius. Просто чтобы одновременно обеспечить поддержку префиксного свойства и не писать все эти префиксы в таблицу стилей. Но вот как это сделать? Проще говоря, нужно что-то типа родительСтиля.prototype.borderRadius = WebkitBorderRadius |
Часовой пояс GMT +3, время: 14:49. |