Zapomnijmy o obiektowym JS, event-listenerach na 'mouseenter’ i 'mouseleave’, customowych komponentach z shadow-rootem albo zewnętrznych biblioteczkach – wykorzystując nowości CSS możemy sami napisać tooltip bardzo szybko.

Nasz HTML wygląda tak:

<p><span data-tooltip="Taki tekst pseudołaciński do testowania na stronach">Lorem ipsum</span>, dolor sit amet consectetur adipisicing elit. Temporibus sed in corrupti eius consectetur a molestiae quo praesentium, voluptate quam, aliquid labore magnam. Aliquid inventore cumque doloribus, quaerat dolorem qui!</p>

Wokół elementu, który ma wyświetlać tooltip mamy <span>, który dodaje ’-tooltip’ do datasetu, gdzie wpisany jest nasz tekst. Teraz wystarczy odpowiedni CSS:

[data-tooltip]:hover::after {
    display: block;
    position: absolute;
    content: attr(data-tooltip);
    border: 1px solid black;
    background: #eee;
    padding: .25em;
}

Ten kod łapie każdy element z 'data-tooltip’, na którym robimy hover i pokazuje naszego tooltipa. Dzięki funkcji 'attr’ jesteśmy w stanie dostać się do zawartości tekstowej i przekazać ją do 'content’ zaś reszta to już stylowanie według naszych upodobań.

Możemy jeszcze jakoś zaznaczyć elementy, które mogą tooltip wyświetlać. Złapmy każdy <span>, który to robi i dodajmy mu kropkowane podkreślenie:

span[data-tooltip]{
 border-bottom: 1px dotted #000;
 text-decoration: none;
}

Łapiemy span, ponieważ nasze tooltipy możemy też wykorzystywać na innych elementach. To w zasadzie wszystko – tyle potrzeba aby uzyskać ten efekt w CSS.