Ho appena visto un codice CSS che includeva il tag ::before
. Ho guardato MDN per vedere cosa è lo ::before
ma non l'ho capito davvero. Qualcuno può spiegare come funziona? Fa un elemento DOM prima di ciò che selezioniamo per CSS?Qual è la differenza tra: before e :: before?
risposta
Questo distingue gli pseudo elementi dalle pseudo classi.
La differenza tra pseudo classi e pseudo-elementi è descritto nel http://www.d.umn.edu/~lcarlson/csswork/selectors/pseudo_dif.html
Il metodo :: before notation (con due punti) è stato introdotto nei CSS3 per stabilire una discriminazione tra pseudo-classi e pseudo-elementi. I browser accettano anche la notazione: prima introdotta in CSS 2. Fonte: https: //developer.mozilla.org/en-US/docs/Web/CSS/:: before Come prima c'è uno pseudo ELEMENT e non una pseudo CLASS (come: hover) due punti sono migliori (seguendo quindi lo standard CSS3). – JoostS
Secondo tali documenti, sono equivalenti:
element:before { style properties } /* CSS2 syntax */
element::before { style properties } /* CSS3 syntax */
L'unica differenza è che il doppio colon viene utilizzato in CSS3, mentre il singolo colon è la versione precedente.
Ragionamento:
L':: prima notazione è stato introdotto nel CSS 3, al fine di stabilire un discriminazione tra pseudo-classi e pseudo-elementi. I browser accettano anche la notazione: prima introdotta nel CSS 2.
Significano essenzialmente la stessa cosa. Il ::
è stato introdotto in CSS3 per aiutare a discriminare tra pseudo elementi (come: before e: after) e pseudo classi (come: link e: hover).
Uno è il modo CSS2 (: prima) e l'altro è CSS3 (:: prima). Attualmente sono intercambiabili nei browser che supportano CSS2 & CSS3.
Ecco una buona spiegazione: http://www.impressivewebs.com/before-after-css3/
ho verificato MDN e w3.org, e il meglio che potevo venire in mente è che ::
viene utilizzato per strutturali modifiche e :
viene utilizzato per styling.
Attualmente sono intercambiabili per motivi di compatibilità.
Risulta separare :link
(per esempio), che stili un <a>
, da :before
(che è un cambiamento strutturale ).
:
è per lo stile, ::
è per struttura.
- 1. In RSpec, qual è la differenza tra before (: suite) e before (: all)?
- 2. RSpec: differenze approfondite tra before (: all) e before (: each)
- 3. @Before e @Transactional
- 4. Junit - Multiple @Before vs. one @Before divisi in metodi
- 5. previsto, o; before if
- 6. JQuery delay before fadeOut
- 7. XSLT: substring-before
- 8. Rake before task hook
- 9. Creazione di un oggetto non thread-thread per thread e utilizzo della garanzia before-before
- 10. A cosa serve `tipo_info :: before`?
- 11. : before e background-image ... dovrebbe funzionare?
- 12. Scopo di @ Symbol Before Strings?
- 13. Qual è la differenza tra test e specifiche?
- 14. Qual è la differenza tra = e: =
- 15. Qual è la differenza tra Verilog! e ~?
- 16. Qual è la differenza tra? : e ||
- 17. qual è la differenza tra [[], []] e [[]] * 2
- 18. Qual è la differenza tra $ e $$?
- 19. Qual è la differenza tra ("") e (null)
- 20. Qual è la differenza tra dict() e {}?
- 21. Qual è la differenza tra " " e ""?
- 22. Qual è la differenza tra {0} e ""?
- 23. Qual è la differenza tra `##` e `hashCode`?
- 24. Qual è la differenza tra {0} e +?
- 25. Qual è la differenza tra .ToString() e + ""
- 26. qual è la differenza tra:.! e: r !?
- 27. Reason to clearInterval before the window scaricate?
- 28. Che cos'è & :: before, & :: after in CSS?
- 29. CSS 3 - angoli arrotondati negli stati after e before
- 30. metodo @Before in TestRule non si chiama
AFAIK, il gruppo di lavoro CSS deciso di prefisso pseudo-elementi con un colon aggiuntivo per differenziarle dalle pseudo-classi che hanno un solo colon. –
... e poiché la notazione dei due punti non è implementata in IE8, dovremo aspettare fino a quando non verrà scaricata dal mercato (come nel 2016 o giù di lì), prima di poter iniziare a usare ':: before'. Ottimo lavoro, Microsoft '-.-' –
Gli pseudo-elementi sono in circolazione dai CSS1. I primi pseudo-elementi erano ': first-letter' e': first-line'. – BoltClock