Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2016, 17:42
Интересующийся
Отправить личное сообщение для AlexKain Посмотреть профиль Найти все сообщения от AlexKain
 
Регистрация: 08.06.2016
Сообщений: 12

Как подключить полифил для стилей
Подскажите, как можно добавить (вернее записать в другое имя) свойство, определяющее стиль? Зачем надо: есть обычные свойства, а есть с префиксами. И для кроссбраузерности обычно употребляют свойства со всеми префиксами, типа border-radius, там же -moz-border-radius, -webkit-border-radius. Так вот, если браузер поддерживает конкретное префиксное свойство, то проще записать в CSS свойство без префиксов (border-radius), а если браузер поддерживает только -webkit-border-radius, записать префиксное в свойство без префикса. Знаю как добавлять свойства типа firstElementChild. Но как подключить и от чего наследуются стили?
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2016, 11:05
Аватар для Kos
Kos Kos вне форума
Аспирант
Отправить личное сообщение для Kos Посмотреть профиль Найти все сообщения от Kos
 
Регистрация: 01.09.2008
Сообщений: 79

Переформулируйте вопрос. Сейчас не понятно, чего вы хотите добиться, и почему это нельзя сделать силами CSS?
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2016, 11:25
Интересующийся
Отправить личное сообщение для AlexKain Посмотреть профиль Найти все сообщения от AlexKain
 
Регистрация: 08.06.2016
Сообщений: 12

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

Последний раз редактировалось AlexKain, 01.07.2016 в 12:39. Причина: Не дописал
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подключить окно к нопке canvas Сергей16 jQuery 0 14.04.2016 11:16
Как подключить jquery.columnizer Espey Общие вопросы Javascript 8 22.03.2014 08:57
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как грамотно подключить cookie для всплывающего окна beamw jQuery 0 11.09.2012 13:20
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53