Я щойно побачив код CSS, який включав ::before
тег. Я подивився MDN, щоб побачити, що це ::before
таке, але я насправді цього не зрозумів.
Хтось може пояснити, як це працює?
Це робить елемент DOM перед тим, що ми вибираємо за допомогою CSS?
Я щойно побачив код CSS, який включав ::before
тег. Я подивився MDN, щоб побачити, що це ::before
таке, але я насправді цього не зрозумів.
Хтось може пояснити, як це працює?
Це робить елемент DOM перед тим, що ми вибираємо за допомогою CSS?
::before
. Чудова робота, Microsoft-.-
:first-letter
і :first-line
.
Відповіді:
Це відрізняє псевдоелементи від псевдокласів.
Різниця між псевдокласами та псевдоелементами описана на http://www.d.umn.edu/~lcarlson/csswork/selectors/pseudo_dif.html
Згідно з цими документами, вони еквівалентні:
element:before { style properties } /* CSS2 syntax */
element::before { style properties } /* CSS3 syntax */
Єдина відмінність полягає в тому, що подвійна двокрапка використовується в CSS3, тоді як одинарна двокрапка - це застаріла версія.
Міркування:
Позначення :: before було введено в CSS 3 з метою встановлення дискримінації між псевдокласами та псевдоелементами. Браузери також приймають позначення: до введення в CSS 2.
Вони по суті означають одне і те ж. Це ::
було введено в CSS3, щоб допомогти розпізнати між псевдоелементами (наприклад: до та: після) та псевдокласами (як: link та: hover).
Я перевірив MDN та w3.org , і найкраще, що я міг придумати, - це те, що ::
використовується для структурних змін і :
використовується для стилізації .
Наразі вони взаємозамінні з міркувань сумісності.
Здається, це відокремлює :link
(наприклад), який стиль a <a>
, від :before
(що є структурною зміною).
:
для стилю, ::
для структури.
Один - це спосіб CSS2 (: before), а інший - CSS3 (:: before). В даний час вони взаємозамінні в браузерах, які підтримують CSS2 та CSS3.
Ось гарне пояснення: http://www.impressivewebs.com/before-after-css3/