Il mio obiettivo è: verificare se l'attributo titolo non è vuoto; se non lo è, dovrebbe essere aggiunto il valore di questo attributo titolo più un trattino. D'altra parte, se l'attributo title è vuoto, allora "-" non dovrebbe essere aggiunto affatto.Verifica attributo titolo CSS se non è vuoto e aggiungi contenuto
Ecco il mio codice CSS corrente:
div:hover::before{content:attr(title):not(attr(title)="") " - ";}
ma non funziona come previsto.
Ad esempio:
<div title="My username">some text</div>
dovrebbe visualizzare il seguente al passaggio del mouse:
mio username - un testo
Ma se:
<div title="">some text</div>
o (Nessun titolo sulla div):
<div>some text</div>
poi il display al passaggio del mouse dovrebbe essere:
un testo
E 'possibile risolvere il problema?
Questo è un uso molto cool del CSS, ma penso che JavaScript è una soluzione più appropriata; perché questo va oltre lo scopo dello styling e penso che sia meglio tenerli separati. –
@deraad: Non vedo come questo va oltre lo scopo dello stile. ': hover' esiste fin dagli albori del CSS, i selettori di attributi sono quasi altrettanto lunghi e il contenuto generato è stato progettato specificamente per situazioni come questa, tra le altre. Non c'è motivo per cui gli autori dovrebbero evitare di usarli insieme. Forse se l'attributo 'title' fosse cambiato in' data-username' o qualcosa di più appropriato per il markup ... – BoltClock
Vero, hai ragione nel fatto che puoi usarlo in questo modo. Il mio commento si riferisce più a tenere le cose nei posti giusti, ad esempio quando un progetto cresce e hai molti eventi come clic, hover, mouseout, ecc che non puoi soddisfare solo con i CSS. può diventare disorganizzato e confuso per identificare se il comportamento dell'evento è scritto in javascript o CSS, specialmente se si lavora in una squadra. È qualcosa che ho incontrato in passato, quindi, solo la mia opinione, ovviamente, è comunque ancora valida. –