В чем разница между: before и :: before? - PullRequest
61 голосов
/ 07 сентября 2011

Я только что увидел код CSS, включающий тег ::before. Я посмотрел на MDN , чтобы увидеть, что такое ::before, но я действительно не понял этого.

Может кто-нибудь объяснить, как это работает?

Делает ли он элемент DOM перед тем, что мы выбираем с помощью CSS?

Ответы [ 5 ]

45 голосов
/ 07 сентября 2011

Согласно этим документам они эквивалентны:

element:before  { style properties }  /* CSS2 syntax */

element::before { style properties }  /* CSS3 syntax */

Единственное отличие состоит в том, что в CSS3 используется двойное двоеточие, тогда как одиночное двоеточие является устаревшей версией.

Рассуждение:

Нотация :: before была введена в CSS 3 для установления различение псевдоклассов и псевдоэлементов. Браузеры также принять обозначение: до того, как введено в CSS 2.

16 голосов
/ 07 сентября 2011

Это отличает псевдоэлементы от псевдо-классов.

Разница между псевдо-классами и псевдоэлементами описана в http://www.d.umn.edu/~lcarlson/csswork/selectors/pseudo_dif.html

10 голосов
/ 07 сентября 2011

По сути, они означают одно и то же. :: был введен в CSS3 для облегчения разграничения между псевдоэлементами (такими как: before и: after) и псевдоклассами (такими как: link и: hover).

3 голосов
/ 07 сентября 2011

Я проверил MDN и w3.org , и лучшее, что я мог придумать, это то, что :: используется для структурных изменений, и : используется для стайлинга .

В настоящее время они являются взаимозаменяемыми по причинам совместимости.

Похоже, что он отделяет :link (например), который стилизует <a>, от :before (который является структурным изменением).

: для укладки, :: для структурирования.

2 голосов
/ 07 сентября 2011

Один - это CSS2 (: before), а другой - CSS3 (:: before). В настоящее время они взаимозаменяемы в браузерах, которые поддерживают CSS2 и CSS3.

Вот хорошее объяснение: http://www.impressivewebs.com/before-after-css3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...