Продолжение статьи «Особенности верстки Gmail».
Мой коллега Иван Широков заметил, что все id-шники в верстке Gmail начинаются с двоеточия.
Хочу поделиться с вами своими соображениями, зачем это может быть сделано.
Во-первых, чтобы нельзя было (даже по ошибке) навесить стили для такого id-шника, потому что #:my {color: red;}
не работает. Своеобразная защита, которая как бы подчеркивает, что id-шник используется только в яваскрипте.
Во-вторых, и в главных, чтобы элемент не был доступен по идентификатору в глобальной области видимости (global namespace). Когда мы пишем <div id="my">test</div>
, этот дивчик становится доступен через идентификатор my
в глобальной области видимости. То есть alert(my.tagName)
выдаст «DIV» (сюрприз, сюрприз!). А если писать с двоеточием <div id=":my">test</div>
, то уже хренушки — нет такого идентификатора в глобальной области видимости. При этом элемент по-прежнему можно достать через document.getElementById(':my')
. На самом деле это очень круто, так как уменьшается вероятность коллизии в глобальной области видимости.
Все это лишь мои догадки. А вы что думаете?