Широко известно, что злоупотребление правилами id css считается плохой практикой. На эту тему написано множество постов - вот, например, один из последний .
В таких сообщениях часто упоминается, что селекторы CSS фактически анализируются движками браузера справа налево. То есть, если, скажем, у нас есть селектор #very div, браузер сначала находит все div, а затем проверяет их на наличие родительского элемента с этим самым идентификатором.
Мой вопрос состоит из двух взаимосвязанных частей. Первая часть - это правда? Существует множество реализаций движков css, как открытых, так и проприетарных, было бы неплохо, если бы кто-нибудь, кто знает что-либо о любом из этих движков, пролил свет на эту тему.
Вторая часть вопроса - если это правда, если мы действительно всегда анализируем правила CSS справа налево, почему мы на самом деле делаем это? Я вообще не эксперт по анализу, но не будет ли удобнее определить, какая часть селектора более специфична (генерирует меньший вывод), и начинать фильтрацию не обязательно справа? Это слишком дорого или что-то?