Прокрутить к контенту ↓


Заметки с меткой «selectors»

  • Почти родной matchesSelector() для IE8 (+)

    В современных браузерах доступен удобный JavaScript-метод matchesSelector() (в более свежих версиях стандарта переименованный в matches()), позволяющий определить, соответствует ли элемент заданному селектору. Это одна из ключевых возможностей, позволяющих обойтись без библиотек типа jQuery для удобного назначения live-обработчиков событий.

    Internet Explorer поддерживает matchesSelector() (с префиксом ms) лишь начиная с версии 9. Но что делать с IE8, поддерживать который во многих случаях по-прежнему приходится? К счастью, есть компактное решение, не требующее сторонних библиотек.

  • Используем Sizzle отдельно от jQuery (+)

    Sizzle — кроссбраузерный движок селекторов, реализованный на JavaScript и используемый в популярной библиотеке jQuery.

    Но если широкие возможности jQuery для конкретной задачи или проекта не нужны, можно использовать Sizzle и как самостоятельную библиотеку, получив 5-6-кратный выигрыш в скорости загрузки по сравнению с jQuery.

  • О классах, идентификаторах и контекстных селекторах

    Если вам не повезло работать с огромным, низкокачественно разработанным сайтом, шаблоны и CSS которого вы не имеете ни малейшей возможности переработать в соответствии со здравым смыслом и лучшими практиками, вам может потребоваться использовать классы и избегать контекстных селекторов и идентификаторов.

    Но практически во всех остальных случаях правильно использованные идентификаторы с контекстными селекторами более предпочтительны, поскольку они более семантичны и легче в отношении пропускной способности интернет-канала.

    Что касается контекстных селекторов, то на сайте, разработанном не сотней обезьян, можно безопасно исходить из того, что стили элементов внутри элемента с идентификатором или HTML5-элемента не будут конфликтовать со стилями других элементов, и что те же самые элементы можно оформить иначе, если они расположены внутри элемента с другим идентификатором или другого HTML5-элемента.

    В идентификаторе нет ничего неправильного, если он использован уместным образом (семантически, структурно, с толком). Точка зрения, согласно которой класс всегда более предпочтителен, чем контекстные селекторы и семантические, структурные идентификаторы, во многом ошибочна.

    Джефри Зельдман (англ.)