Moim celem jest: sprawdzenie, czy atrybut title nie jest pusty; jeśli tak nie jest, należy dodać wartość tego atrybutu tytułu plus myślnik. Z drugiej strony, jeśli atrybut title jest pusty, "-" nie powinno być w ogóle dodawane.Sprawdzanie atrybutu tytułu CSS, jeśli nie jest on pusty i dodaj treść
Tu jest mój bieżący kod CSS:
div:hover::before{content:attr(title):not(attr(title)="") " - ";}
ale to nie działa zgodnie z oczekiwaniami.
Na przykład:
<div title="My username">some text</div>
powinien być wyświetlany następujący przy aktywowaniu:
moja nazwa użytkownika - niektóre tekstu
Ale jeżeli:
<div title="">some text</div>
lub (Bez tytułu na div):
<div>some text</div>
następnie wyświetlacz przy aktywowaniu powinno być:
jakiś tekst
Czy można to naprawić?
To jest bardzo fajne zastosowanie CSS, ale myślę, że JavaScript jest bardziej odpowiednie rozwiązanie; ponieważ wykracza to poza zakres stylizacji i myślę, że najlepiej będzie trzymać je oddzielnie. –
@deraad: Nie widzę, jak to wykracza poza zakres stylizacji. ': hover' istnieje od zarania CSS, selektory atrybutów są prawie tak samo długie, a wygenerowana treść została zaprojektowana specjalnie dla takich sytuacji, między innymi. Nie ma powodu, dla którego autorzy powinni unikać używania ich razem. Może gdyby atrybut "title" został zmieniony na 'data-username' lub coś bardziej odpowiedniego dla znaczników ... – BoltClock
Prawda, masz rację, że możesz go używać w ten sposób. Mój komentarz odnosi się bardziej do utrzymywania rzeczy w odpowiednich miejscach, na przykład gdy projekt rośnie i masz wiele zdarzeń, takich jak kliknięcia, zawijanie, mouseout itp., Których nie możesz zadowolić samym CSS. może się zdezorganizować i dezorientować, aby stwierdzić, czy zachowanie zdarzenia jest zapisane w javascript lub CSS, szczególnie jeśli pracujesz w zespole. Jest to coś, na co natknąłem się w przeszłości, więc tylko moja opinia naprawdę, oczywiście, że tak naprawdę nadal jest ważna. –