Css freelance tooltip img. Eenvoudige tooltips maken met HTML5, CSS en jQuery

Het is onwaarschijnlijk dat lay-outgoeroes in dit bericht iets nieuws voor zichzelf zullen vinden. Dit bericht is meer bedoeld voor beginnende lay-outontwerpers die, net als ik, problemen hadden met het maken en stylen van universele tooltips.

Toen ik onlangs een kleine blog aan het maken was, stond ik voor de taak om stijlvolle, maar tegelijkertijd eenvoudige tooltips te maken. Na geprobeerd te hebben verschillende manieren het maken van afzonderlijke div-containers voor tooltips, of het maken van tooltips op pure CSS, vond ik universele oplossing, dat de code niet rommelig maakt, compatibel is met meerdere browsers en tegelijkertijd zeer eenvoudig te implementeren is.
Iedereen die geïnteresseerd is in mijn methode om dit eenvoudige probleem op te lossen, vraag ik onder cat.

Oplossing De methode die ik u aanbied is vrij eenvoudig en effectief. Werkt in alle browsers, zelfs IE 6 (vaak door mij getest). Gemakkelijk te veranderen en handig. Maakt de code niet rommelig en maakt het duidelijk. Het kan eenvoudig worden gewijzigd om aan uw behoeften te voldoen. Vertraag bijvoorbeeld de weergave van tooltip met behulp van setTimeout of iets anders. HTML Stel dat we een HTML-pagina hebben met een link, als we er met de muis overheen gaan, moeten we een tooltip weergeven:
Tooltips-link
Zoals je misschien al hebt opgemerkt aan de hand van de lijst, gebruik ik de LESS css-preprocessor.
Wij hebben aangesloten aparte bestanden CSS-stijlen en -scripts. We hebben ook een link en div blok, wat de container voor de tooltip zal zijn.
De HTML5-specificatie staat het gebruik van aangepaste attributen van het data-atribute-type toe, die bepaalde informatie over een element of blok kunnen opslaan. Het is in de data-attributen dat we de tekst van de tooltips zullen opslaan.
Link
Voor opslag gebruik ik het data-tooltip attribuut.
We zijn klaar met HTML - we kunnen verder gaan met stijlen. CSS. Ik gebruik de LESS Elements-bibliotheek en raad deze aan iedereen aan, dus ik zal een aantal eigenschappen schrijven met behulp van dit raamwerk.
@import "css/elements.less"; #tooltip ( z-index: 9999; positie: absoluut; weergave: geen; top:0px; links:0px; achtergrondkleur: #000; opvulling: 5px 10px 5px 10px; kleur: wit; .opacity(0.5); . afgerond(5px)
Uit de lijst is het duidelijk dat we in de eerste regel LE verbinden, het div#tooltip-blok op absolute positionering zetten en het verbergen. Vervolgens plaatsen we het blok achtergrondkleur en de tekstkleur, maak de hoeken afgerond (5px) en stel de transparantiewaarde in op 50%. Nou, nu het meest interessante deel: jQuery.
$.jQuery(document).ready(function() ( $("").mousemove(functie (eventObject) ( $data_tooltip = $(this).attr("data-tooltip"); $("#tooltip") .text($data_tooltip) .css(( "top" : eventObject.pageY + 5, "left": eventObject.pageX + 5 )) .show()).mouseout(function () ( $("#tooltip ").hide() .text("") .css(( "top" : 0, "left" : 0 )); )); ));// Klaar einde.
Nu voegen we aan de selectie alle elementen toe met het data-tooltip attribuut en wanneer we erover bewegen vereist onderdeel met behulp van de muis krijgen we de tooltipwaarde en slaan deze op in een variabele. Voeg vervolgens de tooltip-tekst toe aan het #tooltip-blok, geef het de cursorcoördinaten vanaf de rand van de pagina + 5 px en geef ten slotte het blok met de tooltip weer op de juiste plaats. Nadat de muis het element heeft verlaten, verbergen we het #tooltip-blok, wissen we de inhoud ervan en zetten we het terug naar 0;0;.

Dat is het!
Als resultaat krijgen we zoiets als dit: Demo

Dankzij dit eenvoudig script alle elementen op de pagina die het data-tooltip attribuut hebben, krijgen een tooltip.

Bedankt voor uw aandacht!

Vlad Merzjevitsj

HTML heeft al een global title-attribuut dat aan elk element op een webpagina kan worden toegevoegd. De aanwezigheid van dit attribuut voegt een tooltip toe die verschijnt wanneer u de muis over het element beweegt. Het tekstlettertype, de grootte van de tooltip en het uiterlijk ervan als geheel zijn afhankelijk van besturingssysteem en kan niet worden gewijzigd met behulp van stijlen. Bovendien zijn veel ontwikkelaars niet blij dat zo'n hint vrij snel verdwijnt. Dit dwingt je om te zoeken naar manieren om je eigen tooltip te maken, die op de gewenste manier is vormgegeven. Natuurlijk het meest universele methode is, maar in sommige gevallen is het voldoende om alleen met CSS rond te komen.

Als voorbeeld heb ik foto's gekozen; als je er met de muiscursor overheen beweegt, wordt de naam van de foto weergegeven. We zullen de tekstuitvoer zelf uitvoeren met behulp van de eigenschap content en de tekstwaarde van een bepaald attribuut overnemen via attr() . Helaas werkt de inhoud niet zoals gewenst in combinatie met img, dus worden de foto's in het element ingevoegd, waaraan we een data-title-attribuut met tooltip-tekst toevoegen. De verleiding is groot om het title-attribuut in te voegen en te gebruiken, maar in dit geval worden er tegelijkertijd twee tooltips weergegeven: de ene is “native” en de andere is van ons. We gebruiken dus ons eigen data-title attribuut, aangezien HTML5 dit toestaat. We krijgen dus de volgende code (voorbeeld 1).

Voorbeeld 1: HTML-code

HTML5 IE Cr Op Sa Fx

Tooltip in CSS

Laten we verder gaan met de stijl van onze tooltip. Eerst moet je het überhaupt laten verschijnen. Om dit te doen, gebruiken we het ::after pseudo-element, waaraan we inhoud toevoegen: attr(data-title) .

Foto::na ( inhoud: attr(data-titel); )

Het blijkt dat na de inhoud van het element met de fotoklasse de tekst van het data-title-attribuut wordt weergegeven, wat we nodig hadden. Maar omdat de tooltip alleen zou moeten verschijnen als je met de muiscursor over de foto beweegt, voegen we ook de :hover pseudo-klasse toe.

Foto:hover::after ( inhoud: attr(data-titel); )

Het enige dat overblijft is het instellen van de gewenste stijl van onze tooltip, in het bijzonder positie, achtergrondkleur, tekst, kader, enz. (voorbeeld 2).

Voorbeeld 2: Tooltip-stijl

HTML5 CSS3 IE Cr Op Sa Fx

CSS-tooltip .photo (weergave: inline-block; /* Inline blokelement*/ positie: relatief; /* Relatieve positionering */ ) .photo:hover::after ( inhoud: attr(data-titel); /* Weergavetekst */ positie: absoluut; /* Absolute positionering*/ links: 20%; bovenkant: 30%; /* Tooltip-positie */ z-index: 1; /* Geef de tooltip weer bovenop andere elementen */ achtergrond: rgba(255,255,230,0.9); /* Doorschijnende achtergrondkleur */ lettertypefamilie: Arial, schreefloos; /* Lettertype */ lettergrootte: 11px; /* Tooltip-tekstgrootte */ opvulling: 5px 10px; /* Marges */ rand: 1px effen #333; /* Frameparameters */ )

Het resultaat van dit voorbeeld wordt getoond in Fig. 1.

Rijst. 1. Type tooltip

De positie van de tooltip is niet afhankelijk van de cursorpositie; deze verschijnt op dezelfde plaats als u de cursor over de afbeelding beweegt. U kunt de tooltip onder aan de foto laten verschijnen, zodat deze niet bedekt de meeste foto's. De stijl zal iets veranderen (voorbeeld 3).

Voorbeeld 3. Tooltip weergeven onder aan de foto

HTML5 CSS3 IE Cr Op Sa Fx

Tooltip in CSS .photo ( weergave: inline-blok; /* Inline-blokelement */ positie: relatief; /* Relatieve positionering */ ) .photo:hover::after ( inhoud: attr(data-titel); / * Geef de tekst weer */ positie: absoluut; /* Absolute positionering */ links: 0;* Positie van de tooltip */ z-index: 1; : rgba(0,42,167,0.6); /* Semi-transparante achtergrondkleur */ kleur: #fff;* Tekstkleur */ tekstuitlijning: centreren /* Gecentreerde tekstuitlijning */ lettertypefamilie: Arial, sans -serif ; /* Lettertype */ lettergrootte: 11px;* Tooltip-tekstgrootte */ opvulling: 5px 10px;

Het resultaat van dit voorbeeld wordt getoond in Fig. 2.

Rijst. 2. Type tooltip

Helaas werkt de eigenschap transition, die u kunt gebruiken om de tooltip te animeren, niet met pseudo-elementen. Daarom zullen we tevreden moeten zijn met de plotselinge verschijning van onze tooltip. Ook zal er geen effect zijn in de browser IE8 en eerder, deze versie ondersteunt ::after niet. Als u dit pseudo-element echter vervangt door :after , kunt u een min of meer werkende optie krijgen.

of wat HTML-elementen kan tooltips bevatten

Dit hoofdstuk bevat voorbeelden van tooltips uit het gebied Hypertext Markup.

In het menu aan de linkerkant vindt u modern en zeer gedetailleerde lessen door HTML.

Hiermee kunt u uw website maken schone lei, maar kijk voorlopig een beetje lager.

In dit hoofdstuk gaan we kijken

Voordat u doorgaat met HTML-hints, raad ik u aan de informatie te lezen.

Dit kan interessant zijn.

Belangrijkste trends van het vroege internet

Sinds 1997, na de komst van de eerste browsers, hebben sommige consumenten zich actief gespecialiseerd in verschillende gebieden Internet, maar ook in de sfeer informatietechnologie en ondersteuning computerapparatuur. Veel gebruikers worden webontwerpers, beginnen persoonlijke en zakelijke websites te maken en nemen deel aan de constructie van lokale websites computernetwerken. Op deze manier scholen ze zichzelf bij. Deze stand van zaken heeft tot op de dag van vandaag standgehouden. Tegenwoordig is het erg modieus en handig om kennis op te doen Wereld wijde web. Tegenwoordig, en vooral toen, halverwege de jaren negentig van de vorige eeuw, hebben voormalige socialistische landen behoefte aan programmeerspecialisten. Als er vraag is, zal er ook aanbod zijn. Programmeurs worden massaal opgeleid - sommige op universiteiten, sommige thuis achter een computerscherm. In deze fantastische tijden winnen programmeerforums grote populariteit, waar jonge en niet-zo-specialisten hun ervaringen en ideeën uitwisselen.

Tooltip voor HTML-links

Alles is hier bijna hetzelfde: het title="" attribuut definieert HTML-tooltip .

De alt="" van de afbeelding geeft de alternatieve tekst aan die op de pagina wordt weergegeven als de afbeelding niet wordt weergegeven.

Verwar HTML-tooltip en alternatieve tekst niet, aangezien het totaal verschillende dingen zijn.

HTML-tooltip voor tekst

De HTML-tooltip is van toepassing op vrijwel elk element op de pagina.

Om het anders te zeggen: de title="" die we kennen uit de bovenstaande voorbeelden kan header-tags van alle niveaus, paragraaf-tags, blokken, afbeeldingen en lineaire elementen zoals . en anderen.

Ik heb plaatsingservaring titel attribuut="" in titeltags en links op het eerste niveau.

Persoonlijk gebruik ik uiteraard tooltips als onderdeel van de onvermijdelijke amateurexperimenten zoekmachine optimalisatie website tekst. Ik durf niet te beoordelen hoe succesvol mijn experimenten waren. Eerlijk gezegd is het resultaat van een dergelijke optimalisatie moeilijk te traceren, maar het gaat te ver trefwoorden en zinnen kunnen heel gemakkelijk worden gedaan. Wees daarom voorzichtig en overdrijf het niet in uw promotie, aangezien u altijd het risico loopt gestraft te worden door zoekmachines.

In dit artikel wil ik verschillende opties bespreken om een ​​dergelijke functie in elke lay-out te organiseren. Ik heb trouwens al een levend voorbeeld van een dergelijke implementatie op mijn website staan. Als je naar beneden scrollt naar de reacties op deze pagina en over de datum van de reactie beweegt, wordt meteen duidelijk wat er precies gezegd wordt. Nou, als er nog geen reacties zijn, kun je er tegelijkertijd een achterlaten.

Ik zie twee hoofdmethoden voor het implementeren van tooltip: deze is tijdens het zweven, wat ook het populairst is, en de minder populaire wanneer je op een element klikt. Laten we natuurlijk beginnen met het verschijnen van een tooltip wanneer u over een element beweegt.

In dit artikel dacht ik dat ik met het meest primitieve zou beginnen, namelijk een hint weergeven met title , die op geen enkele manier kan worden opgemaakt, maar ik denk dat je dit kunt overslaan, omdat het al duidelijk is. Als het bovenstaande je niet helemaal duidelijk is, denk ik dat na het bestuderen van de video alles veel duidelijker zal worden.

Een eenvoudige manier met ontwerp, tijdens het zweven.

Het is niet ingewikkelder dan de methode die ik heb gemist. Alleen in plaats van het title-attribuut zal ik data-title en design gebruiken CSS-stijlen. Eigenlijk geef ik hieronder de html-code:

?

/* We gebruiken het pseudo-element after om de balk zelf te ontwerpen, maar tegelijkertijd verbergen we het, omdat het alleen zou moeten verschijnen bij hover */ .hover:after (content: attr(data-title); display: none ;positie: absoluut; onderaan: 130%; achtergrondkleur: #fff; opvulling: 5px; box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16);font-size: 12px;) / * Voeg een eigenschap toe zodat wanneer u over een element beweegt, er een hintvak verschijnt */ .hover:hover:after(display: block;)

Hier wil ik uw aandacht vestigen op het feit dat dit slechts een voorbeeld is van ontwerpeigenschappen. Je kunt natuurlijk ontwerpen verschijning sterft, zoals je wilt.

Tooltip bij zweven.

Dit is waarschijnlijk het meeste populaire manier uitvoering van deze mogelijkheid. Door ten minste Ik gebruik het het vaakst.

?

dit is een ontwerptip IN in dit voorbeeld Ik zie ook niets bijzonders, maar meer, maar het resultaat zal beter zijn, zelfs zonder het data-title attribuut te gebruiken. Container erin in dit geval

dient als verpakking voor onze elementen die zullen worden gebruikt om de tooltip te implementeren. En ook de matrijs zelf zal ten opzichte van de container worden gepositioneerd. /* set relatieve positionering container */ .block(positie:relatief;) /* Ontwerp standaard */ .hidden (weergave: geen; positie: absoluut; onder: 130%; links: 0px; achtergrondkleur: #fff; kleur: #3aaeda; opvulling: 5px; tekstuitlijning: midden; -moz-box - schaduw: 0 1px 1px rgba(0,0,0,.16); -webkit-box-schaduw: 0 1px 1px rgba(0,0,0,.16); 0,0,.16); lettergrootte: 12px;) /* Extra decoratie voor het verborgen element (optioneel) */ .hover + .hidden:before (inhoud: " "; positie: absoluut; top: 98%; links: 10%; marge-links: -5px; randstijl: effen: 0; rand-rechts: 7px effen: #fff transparant transparant z-index: 2;) /* Extra decoratie voor het verborgen element (optioneel ) */ .hover + .hidden:after (inhoud: " "; positie: absoluut; boven: 100%; links: 10% ; marge-links: -5px; randstijl: effen; breedte: 0; rand-rechts : 7px effen ,0,0,.16) transparant transparant transparant; z-index: 1;) /* Weergave van een verborgen element bij hover */ .hover:hover + .hidden(display: block;)

Deze twee opties kunnen op uw website worden gebruikt om tooltip weer te geven wanneer u met de cursor beweegt.

Er zijn nog twee methoden, maar deze zijn vrijwel identiek, behalve dat het element verschijnt wanneer u op een element klikt dat altijd op de site wordt weergegeven.

Een eenvoudige manier met registratie, op klik.

Bij een klik ziet de code er precies hetzelfde uit. Het enige is dat ik voor het gemak de klasse van sommige elementen heb vervangen. De focus pseudo-klasse wordt ook gebruikt in plaats van hover . Het is ook de moeite waard om hier op te merken dat in volgorde deze methode werkt, moet u het vervangen door , dat wil zeggen door een hyperlink.

?

De CSS-code is in dit geval vergelijkbaar met het uiterlijk van een blok tijdens het zweven; voor het gemak worden alleen andere klassen gebruikt. En voor juiste werking verander de pseudo-klasse in focus .

/* We gebruiken de after pseudo-klasse om de spot zelf te ontwerpen, maar tegelijkertijd verbergen we deze, omdat deze alleen zou moeten verschijnen als erop wordt geklikt */ .focus:after (content: attr(data-title); display: none ; positie: absoluut; onderaan: 130% links: 0px; achtergrondkleur: #fff; box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16);font-size: 12px;) / * Voeg een eigenschap toe zodat wanneer u op een element klikt, er een hintvenster verschijnt */ .focus:focus:after(display: block;)

Zoals u kunt zien, is er vrijwel geen verschil.

Tooltip wanneer erop wordt geklikt.

Deze klikmethode is ook relevanter als u de tooltip iets beter wilt opmaken dan mogelijk was in de vorige optie.

?

En het daadwerkelijke ontwerp van de dobbelsteen:

/* relatieve positionering ten opzichte van de container instellen */ .block(position:relative;) /* Ontwerp het verborgen element standaard */ .hidden (display: none; position: absolute; bottom: 130%; left: 0px; background- kleur: # fff; kleur: #3aaeda; midden; -moz-box-shadow: 0 1px 1px rgba(0,0,0,.16); -shadow: 0 1px 1px rgba(0,0,0,.16); lettergrootte: 12px;) /* Extra decoratie voor het verborgen element (optioneel) */ .focus + .hidden:before (inhoud: " " positie: absoluut; boven: 98%; links: 10%; randbreedte: 5px; randhoogte: 0; rechts: 7px effen #fff; randkleur: #fff transparant transparant; z-index: 2;) /* Extra decoratie voor het verborgen element (optioneel) */ .focus + .hidden :after (inhoud: " "; positie : absoluut; boven: 100%; links: 10%; marge-links: -5px; randstijl: effen; rand: 7px effen transparant; rand-rechts: 7px effen #fff; randkleur: rgba(0,0,0,.16) transparant transparant transparant; z-index: 1;) /* Weergave van een verborgen element wanneer erop wordt geklikt */ .focus:focus + .hidden(display: block;)

Zoals je kunt zien, is er niets ingewikkelds. Bovendien kunt u statuswijzigingen zowel door aanwijzen als door klikken organiseren. Hoewel ik eerlijk gezegd niet kan zeggen hoe relevant de click-to-click-methode is.

Er is ook een imitatie van het laatste voorbeeld met behulp van , maar het gebruik ervan lijkt mij niet helemaal correct specifiek voor het organiseren van een tooltip op uw website. Als u het absoluut niet met mij eens bent, welkom bij de opmerkingen.

Videoles - Tooltip zonder scripts.

Dat is alles voor mij. Veel succes iedereen.