2013-04-23 29 views
6

Stavo cercando di aggiungere alcuni effetti per i collegamenti visitati, quindi ho avuto questo problema.Impossibile modificare il contenuto di visitato: prima degli pseudo-elementi

Ecco il codice: http://dabblet.com/gist/5447894

Solo Opera può cambiare con successo il contenuto di :before pseudo-elementi. Tutti gli altri browser non funzionano. Mi sono perso qualcosa? Grazie

+1

possibile duplicato di [Firefox 4 non esegue il rendering di: visited :: before (tranne il colore)] (http://stackoverflow.com/questions/5839127/firefox-4-not-rendering-avisitedbefore-ex-color) – bookcasey

risposta

9

Il permesso (= non ignorato) proprietà CSS dei link visitati sono color, background-color, border-*-color, outline-color e, column-rule-color (più in determinate circostanze).

Questo serve per prevenire gli attacchi di furto della cronologia. Vedi this article per ulteriori dettagli.

Quindi è possibile, tecnicamente, impostare una pseudo classe :before per i collegamenti :visited, ma verrà ignorata e verrà visualizzata come se i collegamenti non fossero visitati. Questo non è un bug, è una funzionalità;)

+0

Grazie, sono sorpreso che Opera possa farlo funzionare :) – Peiwen

+1

Significa che l'opera ha poca sicurezza! –

2

C'è una gamma molto limitata di possibilità per lo styling dei collegamenti :visited nei browser moderni per motivi di privacy - in modo che non sia possibile rilevare quali siti l'utente ha visitato in precedenza controllando lo stile calcolato con javascript.

Le proprietà consentiti per styling :visited pubblicitari è

  • color
  • background-color
  • border-color (e sue sotto-proprietà)
  • outline-color
  • Le parti colore del riempimento e del tratto immobili

Anche così, non è possibile ottenere i valori dello stile calcolato per i collegamenti visitati tramite javascript.

Ulteriori informazioni a riguardo here.

+0

Grazie per la spiegazione :) – Peiwen

Problemi correlati