Ответ 1
Copypaste из
http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-colon-notation/
Двойной двоеточие заменяет селектора с одной колонкой для псевдоэлементы в CSS3, чтобы сделать четкое различие между псевдоклассы и псевдоэлементы. Для обратной совместимости синтаксис с одной колонкой допустим для селекторов pre-CSS3. Так после - псевдокласс и:: after - псевдоэлемент.
Эта нотация (обозначение двойной двоеточия) была введена W3 в чтобы "установить дискриминацию между псевдоклассами и псевдо-элементы. Для совместимости с существующими таблицами стилей пользователь агенты также должны принять предыдущую одноколоночную нотацию для псевдо-элементы, введенные в CSS-уровни 1 и 2 (а именно: первая строка,: first-letter,: before и: after). Эта совместимость не допускается для новых псевдоэлементов, введенных в CSS-уровне 3." Для получения дополнительной информации информацию, посетите W3.