Ho un elemento <a>
, dopo di che voglio mostrare un segno >
, utilizzando lo pseudo elemento .Utilizzo: dopo lo pseudo elemento dopo elemento di ancoraggio - differenze del browser
contenuto dell'elemento <a>
è dinamico, quindi è modificata la larghezza, e talvolta l'evento contenuto estende poche righe (poiché questo elemento <a>
è all'interno di un <div>
che è larghezza è fissa).
Desidero che la posizione orizzontale dello >
inizi alla fine della riga più lunga. Cioè, quando lo do che right:0;
regola, dovrebbe essere a destra la maggior parte bordo dell'elemento (la posizione verticale non importa in questo momento):
Questo è il modo in cui si comporta in FF , ma in Chrome e IE, il >
appare alla fine della fila più corta:
mi piacerebbe capire che cosa provoca la differenza tra i browser, ma ancora più importante, mi piacerebbe tutto i browser si comportano come FF - posizionando lo :after
alla fine della riga più lunga. È possibile?
ho messo su the above code dabblet
L'elemento 'a', essendo un elemento in linea relativamente posizionato, è il blocco contenitore per il suo pseudo-elemento': after', che è posizionato in modo assoluto. Il problema è che il testo nel tuo 'a' è multilinea, e la [spec] (http://www.w3.org/TR/CSS21/visudet.html#containing-block-details) dice che non definisce il forma o dimensioni di un blocco contenitore in tale scenario. Questo è il motivo per cui osservi le differenze nel comportamento del browser: in altre parole, i browser non sanno cosa fare in un tale scenario in modo che facciano quello che pensano sia il migliore. – BoltClock