Какое свойство CSS лучше всего подходит для определения поддержки браузером селекторов

#css #cross-browser #feature-detection

#css #кроссбраузерный #функция-обнаружение

Вопрос:

Я пишу несколько расширений Modernizr для определения поддержки браузером таких вещей, как:first-child, :last-child в CSS. Для этого я применяю стиль, а затем проверяю, имеет ли элемент этот стиль.

Какое свойство CSS наиболее надежно для использования в качестве моего тестового стиля?

например, color — плохой выбор, так как если вы введете #123abc, браузер может преобразовать его в rgb (#, #, #)

Итак, я ищу свойство, которое

  • Поддерживается во всех браузерах
  • Браузер не будет преобразован в другой формат

На данный момент я использую width, что, вероятно, нормально, но я подумал, что все равно проверю здесь.

Комментарии:

1. Я полностью за обнаружение функций, а не браузера. Но, как бы мне ни было больно это говорить, поддержка :first-child and :last-child всегда была проблемой только для IE <=v8, и это не изменится. Итак, ваша цель может быть достигнута с помощью скрипта обнаружения IE, для которого существует несколько четко определенных решений. Я согласен, что было бы лучше сделать это с помощью функции обнаружения, но я подумал, что должен указать на это. 🙂

2. Возможно, на рабочем столе это верно, но я не уверен насчет мобильных устройств (на самом деле я понятия не имею, поддерживают ли какие-либо мобильные браузеры first / last-child, но это само по себе является хорошей причиной для тестирования). Я также буду писать тест для nth-child и нескольких других селекторов, которые в целом неизвестны.

Ответ №1:

Я только что написал это http://jsfiddle.net/laustdeleuran/3rEVe / вчера, который делает именно то, о чем вы говорите — эта функция обнаруживает поддержку псевдоселектора:last-child. Я также использую width в качестве своего стиля для проверки, и, похоже, он работает просто отлично.

На данный момент я успешно протестировал его в IE6-8 на Windows XP; IE9, Chrome 12, Safari 5, FireFox 4 и Opera 11 на Windows 7 и Opera 11, FireFox 4, Safari 5 и Chrome 12 на Mac.

Не стесняйтесь использовать его как оно есть, если хотите.