народ, если в двух словах, в чём разница между ::after и :after
С одним двоеточием это синтаксис CSS2. В CSS3 для того что бы различать псевдоклассы и псевдоэлементы стали писать два двоеточия у псевдоэлементов, и одно двоеточие у псевдоклассов. Это разделение только визуальное в коде, так что можно писать как :after, так и ::after, это одно и то же, но IE8 не поддерживает ::after.
Но лучше всегда пиши два двоеточия у псевдоэлементов и одно двоеточие у псевдоклассов, так будет правильнее