Как стать автором
Обновить

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
рад, что информация интересна. буду писать ещё.
только что пообщался с разработчиками Firefox — в релизе Firefox3 поддержки Selectors API не будет, однако в 3.5, скорее всего, появится.
НЛО прилетело и опубликовало эту надпись здесь
Я понимаю, о чём Вы, однако, как мне кажется, необходимо признать, что CSS и JS уже и так взаимодействуют очень активно.
К тому же, когда браузер парсит CSS, он ищет в DOM'е элементы, совпадающие с заданными селекторами. Так тут просто нам этот же функционал дали в JS. Если браузер не поддерживает JS, то у него просто не будут работать скрипты. Если браузер не поддерживает какой-либо селектор CSS, он просто не вернёт элементов по запросу querySelector/querySelectorAll.
НЛО прилетело и опубликовало эту надпись здесь

по поводу абстракции: мне думается, селекторы — это лишь способ поиска (или, если хотите, указания) элементов в DOM'е, и CSS использует именно этот метод для навешивания стилей на элементы.

Посмотрите, что нам говорит спецификация Selectors (жирным выделил я):

Selectors are patterns that match against elements in a tree. Selectors have been optimized for use with HTML and XML, and are designed to be usable in performance-critical code.

CSS (Cascading Style Sheets) is a language for describing the rendering of HTML and XML documents on screen, on paper, in speech, etc. CSS uses Selectors for binding style properties to elements in the document.

These expressions can also be used, for instance, to select a set of elements, or a single element from a set of elements, by evaluating the expression across all the elements in a subtree.
STTS (Simple Tree Transformation Sheets), a language for transforming XML trees, uses this mechanism.

То же самое нам говорит спецификация Selectors API:


Selectors, which are widely used in CSS, are patterns that match against elements in a tree structure

При этом Selectors API ссылается именно на спецификацию Selectors!


Очевидно, что селекторы выделяют в отдельную сущность — метод поиска элементов в дереве. Ещё раз отмечу — не слияние поведения и стиля, но логичное выделение удобного метода поиска элементов в DOM'е в отдельную сущность.

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

Вот именно что в спецификации Selectors этот отрыв сознательно сделали.

P.S. expressions используется только в правилах CSS, в селекторах никогда не использовался.

IE8, FF3.5, WebKit - это все конечно же замечательно, но только если не смотреть статистику использования браузеров - пальма первенства до сих пор у IE6 (непонятно почему МС не включили ИЕ7 в SP3 для XP).

Поэтому пользоваться полноценно селекторами можно будет только ко времени релиза ИЕ9, когда количество пользователей ИЕ6 станет настолько незначительнам, что им ими можно будет пренебреч при разработке веб-сайтов.
Я согласен с Вами в том, что полноценно использовать Selectors API получится не скоро. Однако знать принцип, как мне кажется, необходимо, к тому же, большинство js-фреймворков умеют эмулировать Selectors API (и большинство из них уже в ближайшее время будет знать, какие браузеры реализуют Selectors API, а какие — нет, и, соответственно, будут либо эмулировать поддержку, либо отдавать её на откуп браузеру).
В браузерах, не имеющих родной поддержки, будет работать более медленная JavaScript-эмуляция, только и всего.
Именно, фактически все кто пользуется фреймворками с подобной функциональностью и использует эту функциональность должно быть все равно =) станет быстрее работать - хорошо.
В целом подобная функциональность очень удобно. Я лично ее использую очень часто.
Например, есть у нас некие элементы, они имеют опредленную "одинаковую функциональность". В ХТМЛ мы лишь указываем им класс, а дальше яваскриптом всем им инициализируем нужную функциональность.
Частый пример - визивиг редакторы. Мы лишь добавляем textarea, указываем класс, а в итоге получаем визифиг редактор.
Кроме того это вполне логично. Цсс указывает нам как надо отображать элементы. И не важно, обратывает это браузер или яваскрипт-код.
Исправьте ссылку на mootools. Она некорректная.
Прошу прощения, поправил!
Спасибо большое за то, что указали!
Автор, позвольте вопрос, что такое "нативная поддержка"?
Простите за корявое слово, не смог подобрать хороший перевод для native support, посмотрел в интернете — вроде много где встречается употребление, решил использовать.
Родная поддержка. См. также
я думал об этом варианте, и он мне не понравился — показалось, что слово «родная» как-то к UA малоприменимо. Однако прочитал Вашу ссылку, и тут же вспомнил, что часто используются словосочетания вроде «родные динамики», «родные запчасти» и проч.
Так что спасибо за комментарий!
Статью поправил.
Друзья! Когда я редактировал статью, я нажал «публиковать» вместо «сохранить», в результате чего статья снова появилась на первой странице блога javascript. Прошу прощения!
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации