Od autora: Dobrý den. Popisek je malý vysvětlující text, který se zobrazí, když najedete na prvek, obvykle obrázek. Dnes se podíváme na to, jak můžete vytvořit tooltip v HTML různými způsoby.
Standardní nápovědaVe výchozím nastavení je atribut title zodpovědný za zobrazení vysvětlujícího textu. Může být použit pro různé prvky, ale obvykle se používá pouze pro obrázky k vysvětlení toho, co zobrazují.
V jednom z předchozích článků jsem použil obrázek tygra, abych ukázal práci s velikostí obrázků. Pokud vám to nebude vadit, použiji tento obrázek znovu. Chcete-li tedy zobrazit nápovědu, stačí přidat atribut title a napsat do něj požadovaný text.
< img src = "tiger.jpg" title = "Tohle je tygr" > |
Může obsahovat jedno slovo nebo několik vět. A takhle to vypadá:
Nápověda se objeví plynule, ne hned po najetí, ale po nějaké době. Toto je výchozí chování.
Hlavním problémem takového tooltipu je, že jej nelze stylizovat. Jak tento problém vyřešit? Budeme muset napovědět jiným způsobem. Teď vám pár ukážu.
Čistá css metodaVelmi zajímavý způsob, který vám umožní krásně zobrazit nápovědu k obrázku. HTML značení je jednoduché, pouze obrázek je potřeba uzavřít do blokového kontejneru, kterému přiřadíme identifikátor, abychom na něj mohli později odkazovat ve stylech:
< div id = "tiger" data - name = "Суматранский тигр" > < img src = "tiger.jpg" > < / div > |
Jediná věc, která vám zde může být nejasná, je atribut data-name. Jde o to, že se jedná o takzvaný datový atribut, který sám o sobě nic nedělá, ale jeho hodnotu lze použít v css a javascriptu, což je v některých případech užitečné. To uvidíte příště.
Nejprve si tedy popíšeme styly pro kontejner. Potřebujeme relativní umístění, protože blok s vysvětlujícím textem umístíme absolutně tak, aby k umístění došlo vzhledem k nadřazenému bloku, a ne k celé stránce.
#tiger( pozice: relativní; zobrazení: vložený blok; )
#tygr( poloha: relativní; zobrazení: inline - blok; |
Blokové řádkové zobrazení zabrání roztažení bloku (a s ním i bloku s popiskem, který vytvoříme) přes celou šířku okna. Zbývá už jen vytvořit samotný hint. V CSS je velmi pohodlné to udělat pomocí pseudoprvků. Takhle:
#tiger:hover:after ( obsah: attr(název-dat); pozice: absolutní; vlevo: 0; dole: 0; pozadí: rgba(5,13,156,.55); barva: #fff; zarovnání textu: na střed ; font-family: kurzíva; font-size: 14px; padding: 3px 0; width: 100%; )
#tiger:hover:after ( obsah: attr (data - jméno); pozice: absolutní; vlevo: 0; dole: 0; pozadí: rgba(5, 13, 156, . 55); barva : #fff; text - zarovnat : střed ; rodina písem: kurzíva; velikost písma: 14px; odsazení: 3px 0; šířka: 100 %; |
Existuje spousta kódu, ale není zde nic složitého. Selektor #tiger:hover:after znamená následující: když najedeme na blok s obrázkem, musíme vytvořit pseudoprvek after (a pak jsou pravidla uvedena ve složených závorkách). Vlastnost content: attr(název-dat) nastavuje textovou hodnotu bloku. Bude se rovnat tomu, co je zapsáno v atributu data-name bloku obalu obrazu.
Tato nápověda se zobrazí, když najedete na obrázek, ale na rozdíl od standardního to udělá náhle a samotný vzhled se objeví okamžitě v okamžiku najetí. V tomto případě nebude možné implementovat hladký přechod, protože hladké přechody nejsou podporovány pro pseudoprvky.
Metoda 2. Čistý css a hladký vzhledDrobným přepsáním kódu však můžete dosáhnout hladkého vzhledu popisku a opět bez použití javascriptu.
Abyste se sami přesvědčili o 2 efektech, které vám ukážu příště, doporučuji otevřít Poznámkový blok nebo jakýkoli pohodlný editor kódu a vše po mně zopakovat. Je pravda, že k tomu stále musíte zahrnout soubor stylů, ačkoli styly mohou být také zapsány v html ve značkách
Takže kód pro tento příklad bude trochu jiný, a to proto, že nebudeme používat pseudo prvek. Bylo to kvůli tomu, že nebylo možné aplikovat hladké změny. Tentokrát bude kód vypadat takto:
Tygr sumaterský
< div id = "tiger2" > < img src = "tiger.jpg" > < div class = "text" >Tygr sumaterský< / div > < / div > |
CSS kód neprošel žádnými velkými změnami:
#tiger2( pozice: relativní; zobrazení: inline-blok; ) #tiger2 .text ( přechod: vše 0,6s; neprůhlednost: 0; pozice: absolutní; vlevo: 0; dole: 0; pozadí: rgba(5,13,156,. 55); barva: #fff; text-align: center; font-family: cursive; font-size: 14px; padding: 3px 0; width: 100%; transform: scale(0); ) #tiger2:hover .text (neprůhlednost: 1; )
#tygr2( poloha: relativní; zobrazení: inline - blok; #tiger2.text ( přechod: vše 0,6s; transform:scale(0); #tiger2:hover.text( krytí: 1; |
Odstraňujeme pouze vlastnost content, protože je podporována pouze pseudoprvky. Přidáme vlastnost přechodu, která vytváří plynulé přechody stavů. Dobře, neprůhlednost: 0 poskytne našemu bloku popisků plnou průhlednost, takže nebude na stránce vidět.
Při najetí na blok nyní stačí vrátit bloku normální průhlednost pomocí tooltipu. Připraveno. Můžete zkontrolovat, zda se prvek zobrazuje hladce.
Pomocí css3 můžete skrýt prvek jiným způsobem. Například pomocí transformací. Nahraďte plnou průhlednost touto vlastností: transform: scale(0) a velikost bloku se zmenší na nulu, takže to prostě nebude na obrazovce. Když najedete na blok s obrázkem, měli byste vrátit normální velikost takto: transform: scale(1). V tomto případě bude vzhledový efekt vypadat ještě krásnější. O tom se můžete přesvědčit sami.
Jak můžete vidět, v css se může pomalu objevit i nápověda s krásnými efekty.
jiné metodyjQuery vám může poskytnout ještě více možností. Pomocí této knihovny můžete napsat kód pro zobrazení nápovědy buď sami, nebo najít nějaký plugin, který to již implementuje.
Například framework Bootstrap má také mnoho hotových komponent a jednou z nich jsou tooltipy. V dokumentaci rámce se můžete podívat na příklady kódu, které vám umožňují vytvářet stejné rady a používat je. Není nutné připojovat celý Bootstrap, obecně můžete ponechat pouze takovou komponentu, jako jsou tooltipy, stáhnout a připojit pouze to.
Obecně jsem vám dnes ukázal způsoby, jak v CSS vytvořit krásný tooltip s ostrým a hladkým vzhledem, navíc máte ve svém arzenálu Bootstrap a jQuery. Vyberte si cokoli a implementujte zajímavé a krásné tipy na své stránky!
Vlad Merževič
HTML již má globální atribut title, který lze přidat do libovolného prvku na webové stránce. Přítomnost tohoto atributu přidává nápovědu, která se zobrazí, když najedete myší na prvek. Písmo textu, velikost popisku a jeho vzhled obecně závisí na operačním systému a nelze je změnit pomocí stylů. Řada vývojářů navíc není ráda, že takový náznak celkem rychle mizí. To vás nutí hledat způsoby, jak vytvořit svůj vlastní tooltip, který by byl navržen požadovaným způsobem. Nejuniverzálnější způsob je samozřejmě, ale v některých případech si vystačíte se samotným CSS.
Jako příklad jsem zvolil fotografie, po najetí kurzorem myši na ně se zobrazí název fotografie. Uděláme samotný textový výstup pomocí vlastnosti content a převezmeme textovou hodnotu z nějakého atributu přes attr() . Bohužel obsah nebude v kombinaci s img fungovat podle představ, takže se fotky vloží do prvku, ke kterému přidáme atribut data-title s textem tooltipu. Existuje pokušení vložit atribut title a použít jej, ale v tomto případě se zobrazí dva popisy současně: jeden je „nativní“ a druhý je náš. Takže používáme vlastní atribut data-title, protože HTML5 to umožňuje. Získáme tak následující kód (příklad 1).
Příklad 1: HTML kód
HTML5 IE Cr Op Sa Fx
Popisek v CSS
Přejděme ke stylu našeho tooltipu. Nejprve je potřeba, aby se vůbec objevil. K tomu použijeme pseudoprvek ::after, ke kterému přidáme obsah: attr(data-title) .
Photo::after ( content: attr(data-title); )
Ukazuje se, že po obsahu prvku s třídou fotografie se zobrazí text z atributu data-title, což jsme potřebovali. Protože by se ale popis měl objevit pouze tehdy, když na fotku najedete kurzorem myši, přidáme také pseudotřídu :hover.
Photo:hover::after ( content: attr(data-title); )
Zbývá pouze nastavit požadovaný styl našeho tooltipu, zejména pozici, barvu pozadí, text, rámeček atd. (příklad 2).
Příklad 2: Styl popisku
HTML5 CSS3 IE Cr Op Sa Fx
Popisek v CSS .photo ( display: inline-block; /* Inline-block element */ position: relativní; /* Relativní umístění */ ) .photo:hover::after ( content: attr(data-title); / * Zobrazit text */ pozice: absolutní; /* Absolutní umístění */ vlevo: 20 %; nahoře: 30 %; /* Umístění popisku */ z-index: 1; /* Zobrazit popisek nad ostatními prvky */ pozadí: rgba ( 255,255,230,0.9); /* Průsvitná barva pozadí */ rodina písem: Arial, sans-serif; /* Rodina písem */ velikost písma: 11px; /* Velikost textu popisku */ odsazení: 5px 10px; /* Okraje * / ohraničení: 1px plný #333; /* Možnosti ohraničení */ )
Výsledek tohoto příkladu je znázorněn na Obr. 1.
Rýže. 1. Typ popisku
Poloha popisku nezávisí na poloze kurzoru, zobrazí se na stejném místě, když najedete kurzorem na obrázek. Popisek můžete nastavit ve spodní části fotografie, takže nezakryje většinu obrázku. Styl se mírně změní (příklad 3).
Příklad 3. Zobrazení popisku ve spodní části fotografie
HTML5 CSS3 IE Cr Op Sa Fx
Popisek v CSS .photo ( display: inline-block; /* Inline-block element */ position: relativní; /* Relativní umístění */ ) .photo:hover::after ( content: attr(data-title); / * Zobrazit text */ pozice: absolutní; /* Absolutní umístění */ vlevo: 0; vpravo: 0; dole: 5px; /* Umístění popisku */ z-index: 1; /* Zobrazit popisek nad ostatními prvky */ pozadí : rgba(0,42,167,0.6); /* Poloprůhledná barva pozadí */ barva: #fff; /* Barva textu */ zarovnání textu: na střed; /* Zarovnat text na střed */ rodina písem: Arial , sans-serif ; /* Typ písma */ velikost písma: 11px; /* Velikost textu popisku */ odsazení: 5px 10px; /* Okraje */ ohraničení: 1px plné #333; /* Možnosti ohraničení */ )
Výsledek tohoto příkladu je znázorněn na Obr. 2.
Rýže. 2. Typ popisku
Bohužel vlastnost přechodu, kterou můžete použít k animaci popisku, nefunguje s pseudoprvky. Proto se budeme muset spokojit s náhlým objevením našeho popisku. Také to nebude mít žádný účinek v prohlížeči IE8 a starších, tato verze nepodporuje ::after . Pokud však tento pseudoelement nahradíte :after , můžete získat víceméně funkční možnost.
Layoutoví guruové v tomto příspěvku pravděpodobně nenajdou nic nového. Tento příspěvek je spíše pro začínající návrháře rozvržení, kteří stejně jako já měli problémy s vytvářením a stylováním univerzálních popisků.
Nedávno, když jsem dělal malý blog, jsem stál před úkolem udělat stylové, ale zároveň jednoduché tooltipy. Po vyzkoušení různých způsobů vytváření samostatných div kontejnerů pro tooltipy, nebo vytváření tooltipů s čistým CSS, jsem našel univerzální řešení, které nebude zahlcovat kód, bude kompatibilní s různými prohlížeči a zároveň bude velmi jednoduché na implementaci.
Koho zajímá můj způsob řešení tohoto jednoduchého problému, ptám se pod kat.
Odkaz na popisky
Jak jste si již mohli všimnout z výpisu, používám LESS css preprocesor.
CSS styly a skripty jsme zahrnuli do samostatných souborů. Máme také jeden odkaz a blok div, který bude kontejnerem pro popis.
Specifikace HTML5 umožňuje použití vlastních atributů typu data-atribute, které mohou uchovávat některé informace o prvku nebo bloku. Právě do datových atributů uložíme text tooltipů.
Odkaz
Pro ukládání používám atribut data-tooltip.
S HTML jsme skončili – můžeme přejít ke stylům CSS Já používám knihovnu LESS Elements a doporučuji ji všem, takže nějaké vlastnosti napíšu pomocí tohoto frameworku.
@import "css/elements.less"; #tooltip ( z-index: 9999; position: absolute; display: none; top:0px; left:0px; background-color: #000; padding: 5px 10px 5px 10px; color: white; .opacity(0.5); . zaokrouhleno(5px); )
Z výpisu je zřejmé, že v prvním řádku připojíme LE, nastavíme blok div#tooltip na absolutní polohování a skryjeme. Dále bloku dáme barvu pozadí a barvu textu, zaoblíme rohy (5px) a nastavíme hodnotu průhlednosti na 50 %. jQuery Nyní přichází ta zábavná část – jQuery.
$.jQuery(document).ready(function() ( $("").mousemove(funkce (eventObject) ( $data_tooltip = $(this).attr("data-tooltip"); $("#tooltip") .text($data_tooltip) .css(( "nahoře" : eventObject.pageY + 5, "vlevo" : eventObject.pageX + 5 )) .show(); )).mouseout(function () ( $("#tooltip) ").hide() .text("") .css(( "nahoře" : 0, "vlevo" : 0 )); )); ));// Připravený konec.
Nyní do výběru přidáme všechny prvky s atributem data-tooltip a když najedeme myší na požadovaný prvek, získáme hodnotu tooltipu a uložíme ji do proměnné. Dále přidáme text nápovědy do bloku #tooltip, přidělíme mu souřadnice kurzoru od okraje stránky + 5 px a nakonec zobrazíme blok s popiskem na správném místě. Poté, co myš opustí prvek, skryjeme blok #tooltip, vymažeme jeho obsah a vrátíme jej na 0;0;.
To je vše!
Ve výsledku dostaneme něco takového: Demo
Díky tomuto jednoduchému skriptu dostanou tooltip všechny prvky na stránce, které mají atribut data-tooltip.
Děkuji za pozornost!
Nápověda HTML je blok s dalšími informacemi, který se zobrazí, když najedete myší na konkrétní prvek webové stránky. Dnes si vytvoříme vlastní tooltip pomocí HTML a CSS:
Zobrazit demo | Stáhněte si zdrojový kódBudeme moci používat CSS nápovědy pro většinu prvků, jako jsou odkazy, značky, stylizovaný text atd. Budeme muset na prvek aplikovat několik tříd a přidat atribut data- s textem nápovědy.
Nastavení dokumentuMusíme vytvořit dokument HTML a nastavit zdrojové označení:
Popisky Ukázka // obsah
Přidal jsem odkaz na Normalize.css, který pomáhá resetovat všechny styly prohlížeče na výchozí a zajišťuje, že každý prvek vypadá ve všech prohlížečích stejně. Na rozdíl od standardního resetu CSS neodstraní Normalize.css všechny výchozí styly, takže nebudete muset přepisovat styl každého prvku od začátku.
Vytvořil jsem div s třídou kontejneru, do které umístíme základní příklady HTML tooltipů. Zde jsou styly pro tělo a třídu .container:
tělo ( rodina písma: "Work Sans", bezpatkové; velikost písma: 1,5 em; výška řádku: 1,4 em; váha písma: 700; barva pozadí: #28ABE3; barva: #fff; ) .container ( šířka: 800px; okraj: 100px auto; pozadí: radiální-gradient(kruh nejvzdálenějšímu rohu při 400px 250px, #64BBE0 0%, #28ABE3, #28ABE3 95%); )
Vycentroval jsem kontejner div nastavením margin-left a margin-right na auto . Také přidán nějaký styl do části těla, aby vypadala lépe.
Rozhodl jsem se přidat malý lehký přechod CSS na pozadí. Pokud prohlížeč nepodporuje CSS přechody (to platí zejména pro IE 8 a 9), barva pozadí se přepne zpět na výchozí modrou (barva pozadí části těla).
S kotevními značkami použiji nápovědy HTML pro ukotvení, ale třídy můžete přiřadit i jiným vloženým prvkům, jako je silný tag nebo span . Níže je obsah kontejneru div:
- Popisek dole
- Popisek vlevo
Odkazům jsem přiřadil dvě třídy. Třída tooltip bude zodpovědná za tělo tooltipu a druhá třída určí jeho umístění.
Můžete také vidět atribut custom data-, který obsahuje text naší nápovědy HTML.
Vytvoření třídy tooltipNíže je uveden kód třídy tooltip:
Tooltip ( position: relativní; ) .tooltip:after ( position: absolute; padding: 8px; border: 3px solid #fff; border-radius: 8px; background-color: #1FDA9A; font-size: .9em; font-weight : bold; color: #fff; content: attr(data-tooltip); min-width: 80px; /* width: -moz-max-content; */ /* width: -webkit-max-content; */ opacity : 0; přechod: všechny .2s náběh .25s; viditelnost: skrytá; z-index: 2; ) .tooltip:hover:after ( neprůhlednost: 1; viditelnost: viditelná; )
Samotný popis HTML hover je pseudoprvkem :after a je umístěn absolutně. To je důvod, proč je nutné přiřadit relativní polohu kotevnímu prvku. Přidal jsem několik základních stylů, jako je výplň, okraj, velikost a šířka písma. Podívejme se blíže na vlastnost content.
Obsahuje attr() - hodnotu, která ukládá naše vlastní data-tooltip a používá ji k zobrazení textu samotného tooltipu. Místo data-tooltipu můžete použít jakýkoli jiný název, jen se ujistěte, že začíná na data- . Více o těchto atributech se můžete dozvědět zde.
Tělo popisku má minimální šířku 80 pixelů. Pokud chcete, aby se obsah popisku roztáhl do jednoho řádku, přidejte hodnotu max-content pro vlastnost width, která je aktuálně zakomentována. Je třeba poznamenat, že se jedná o experimentální funkci, takže byste měli používat předpony dodavatele -webkit- a -moz- .
Chcete-li poskytnout nápovědě HTML hover efekt animace snímku, použijeme vlastnost přechodu. Všimněte si hodnoty 0,25 s, která určuje prodlevu, než se nápověda zobrazí nebo skryje. Nezobrazí se tedy, pokud na text najedete omylem, ale pouze pokud nad textem najedete delší dobu. Také jsem nastavil krytí na 0 a viditelnost na skryté . Nemůžeme použít display: none; , protože prvek zcela zmizí a neuvidíme žádné přechodové efekty. Krytí a viditelnost se změní, když najedete ukazatelem myši na prvek.
Výsledek:
Dívej se
Poznámka: Změnil/odstranil jsem některé značky a styly v ukázce na CodePen. Chcete-li vidět konečný výsledek, podívejte se na ukázku na konci tohoto článku.
Přidání pohybuNyní, když jsme implementovali nápovědu HTML, která se objeví/zmizí při najetí myší, pojďme ji přesunout. Vlastnost animace jsme již přiřadili, vše, co musíme udělat, je nastavit počáteční pozici, odkud se má objevit, a koncovou pozici:
/*Počáteční pozice popisku*/ .tooltip-top:after ( bottom: 150 %; left: 0; ) .tooltip-bottom:after ( top: 155 %; left: 0; ) .tooltip-left:after ( right: 130 %; min-width: 100px; ) .tooltip-right:after ( left: 130%; min-width: 100px; ) /*Koncová pozice hrotu*/ .tooltip-top:hover:after ( bottom: 120%; ) .tooltip-bottom:hover:after ( top: 125 %; ) .tooltip-left:hover:after ( right: 110 %; ) .tooltip-right:hover:after ( left: 110 %; )
Rozhodl jsem se přidat tuto funkci do dalších tříd. Pokud tedy přiřadíte například třídu .tooltip-left , zobrazí se tooltip vlevo od textu, pokud přidáte .tooltip-top , tooltip se objeví nahoře atd.
Zobrazit demo
V této ukázce používám třídu .tooltip-right. Můžete experimentovat a používat různé třídy k definování různých pozic popisků HTML.
Vytvoření trojúhelníkuPosledním prvkem popisku je malý trojúhelník na jedné straně bloku. Vytvoříme ji pomocí pseudotřídy :before (pseudotřída :after se již používá pro samotný tooltip). Přiřadíme jej k našim čtyřem třídám pozic, takže pro každou z nich je trojúhelník vygenerován odpovídajícím způsobem:
/** * Trojúhelníky */ .tooltip-top:before, .tooltip-bottom:before, .tooltip-left:before, .tooltip-right:before ( content: ""; display: block; position: absolute; border- šířka: 7px; styl ohraničení: plný; barva ohraničení: rgba(0, 0, 0, 0); neprůhlednost: 0; přechod: všechny 0,2 s náběh 0,25 s; viditelnost: skrytý; ) .tooltip- top:hover:before, .tooltip-bottom:hover:before, .tooltip-left:hover:before, .tooltip-right:hover:before ( neprůhlednost: 1; viditelnost: viditelné; )
Trojúhelník vytvoříme tak, že ohraničení dáme šířku, když samotný prvek nemá žádnou šířku ani výšku. V tomto případě je šířka rámce nastavena na 7 pixelů. Barva rámu je zcela průhledná, což je velmi důležité. V následujícím úryvku kódu přiřadím odpovídající straně rámečku barvu, která mi umožňuje definovat tvar trojúhelníku.
Poskytování dalších informací o potenciálně složitých prvcích uživatelského rozhraní je velmi důležitou součástí práce webového designéra při vývoji uživatelsky přívětivé a přístupné webové stránky.
Jedním z běžně používaných mechanismů pro zobrazení dalších informací nad rámec toho, co je vidět na stránce, jsou popisky (návrhové prvky pro zobrazení tipů na určité prvky na obrazovce).
I když existuje mnoho inovativních řešení využívajících CSS a JavaScript (s nebo bez použití frameworku JavaScript, jako je jQuery), někdy je užitečné podívat se, jak nové technologie otřásají dlouholetými technikami.
Tento tutoriál vám ukáže, jak můžete vytvořit úžasné popisky pro různé prohlížeče pouze pomocí CSS.
Popisky jsou úžasné!Kdekoli potřebujete vysvětlit zkratku nebo akronym, vysvětlit význam slova nebo poskytnout další informace o něčem, jsou popisky jednoduchým, ale efektivním řešením.
Od malého žlutého bloku textu, který se zobrazuje nad prvkem, jako je obrázek a zobrazuje obsah atributu title (nebo atributu alt, pokud nemáte tu smůlu, že používáte Internet Explorer), až po sofistikovaná řešení založená na skriptech využívající popisky, tooltipy jsou fantastickým nástrojem, který se zdá být v komunitě návrhářů jen málo oblíbený.
Zvýšení účinku popisků
Většina prohlížečů má výchozí styly pro popisky, i když nevypadají moc hezky.Zatímco rychle se vyvíjející standardy s novými technikami začínají být stále lepší a lépe podporovány novými prohlížeči, vzestup CSS nám také umožňuje vytvářet popisky (které slouží jako náhrada za nudné výchozí nastavení prohlížeče, jako je ten výše) na nové úrovni. detail a design.
Pokud jste již dříve používali řešení založená na jQuery, jistě si všimnete, že JavaScript umí spoustu věcí, které CSS neumí (například oddálit zmizení popisku). Zvýraznění a styling však lze provést pomocí CSS, které vylepší váš návrh a inspiruje další skvělé návrhy, které jdou nad rámec popisků.
Co budeme dělatV tomto tutoriálu vytvoříme popisky pomocí čistého CSS.
To znamená, že budou fungovat v prohlížečích, které nepodporují CSS3 (jako je Internet Explorer 8 a starší) – nebudou v nich vypadat tak dobře jako v novějších prohlížečích.
Vzhled efektů, jako jsou barvy, písma, obrázky a rámečky s nápovědou, bude záviset na tom, co se na počítači koncového uživatele používá (prohlížeč, nainstalovaná písma nebo kontrast monitoru).
Rozšíření CSS3Pomocí jednoduchých, ale účinných rozšíření, jako jsou vlastnosti border-radius a box-shadow, můžete jednoduchému obdélníku bublinové zprávy dát nový a pěkný vzhled.
Co je pod naší kapotou?Začněme HTML kódem pro náš příklad.
různé typy popiskůAbychom vám poskytli dostatek nápadů pro vaše vlastní projekty, vytvoříme pět různých typů popisků.
Každý z nich vypadá velmi podobně jako ostatní, aby byl standardizován výstup displeje. Ale můžete s nimi experimentovat později, abyste je podrobně prostudovali a změnili vzhled.
Kompatibilita mezi prohlížečiTento mechanismus by měl fungovat ve všech prohlížečích, nicméně pokud potřebujete, můžete si jej změnit podle svého.
Základní označeníV níže uvedeném kódu používáme generickou šablonu XHTML 1.0 s běžným prvkem.
Vzhledem k tomu, že k vytváření našich prvků používáme CSS, je CSS pro účely učení vnořeno do dokumentu pomocí .
Můžete také přidat jQuery nebo JavaScript kód pro vylepšení efektů a funkčnosti, pokud chcete!
HTML Markup Tooltips Příklad popisků vytvořených pomocí CSS!Umístěte kurzor myši na text a zobrazí se: klasická nápověda, kritická zpráva Kritický příspěvekToto je jen příklad toho, jak vytvořit popisky pomocí CSS!, nápověda HelpToto je jen příklad toho, jak vytvářet popisky pomocí CSS!, info InfoToto je jen příklad toho, jak vytvářet popisky pomocí CSS! a varování Upozornění: Toto je pouze příklad toho, jak vytvořit nápovědu pomocí CSS!.
Toto je jen příklad toho, jak vytvořit popisky pomocí CSS!Kód používá prvek (není s ním spojeno nic zvláštního) a odstavce (
) pro text, který obsahuje prvky odkazu (pro kterou je nastavena třída "tooltip").
Proč se pro popisky používá značka? ?Důvod, proč používáme značku a místo abbr , dfn nebo span, je ten, že IE6 má špatnou podporu pro pseudoselektor:hover pro prvky jiné než .
Pokud nemáte v úmyslu podporovat IE6, můžete použít jinou značku.
Každý prvek span v příkladu je nastaven na class classic (pro běžný popis) nebo custom (s kritickým , help , info nebo varováním, aby odpovídalo použitému barevnému schématu).
Toto použití stylingu má také několik bonusů v podobě prvku em (který nastavuje název popisku) a obrázku (který se používá jako ikona v popisku; můžete použít vlastní obrázky).
CSSNapsali jsme HTML kód pro stránku a je čas, aby popisky udělaly svou práci.
Níže uvedený kód, který je přidán do části stránky, nastaví každý odkaz obsahující popisek na pěkný malý styl s podtržením tečkovanou čarou (pro odlišení od běžného odkazu, který má podtržení plnou čarou) a nastaví kurzor s otazníkem (i pro vizuální odlišení).
Také odstraní podtržení a nastaví barvu (prvek tedy vypadá méně jako běžný odkaz).
Druhá část kódu jednoduše skryje nápovědu, dokud není potřeba.
Vše je velmi jednoduché!
Styly CSS pro class.tooltip .tooltip ( border-bottom: 1px tečkovaný #000000; barva: #000000; obrys: žádný; kurzor: help; text-decoration: none; position: relativní; ) .tooltip span (levý okraj: -999em; pozice: absolutní; )Obsah popisku je odstraněn ze zobrazení pomocí záporné vlastnosti levého okraje namísto zobrazení: žádné nebo viditelnosti: skryté, protože některé programy pro čtení z obrazovky tyto vlastnosti ignorují.
CSS styly pro popiskyBrzy zajistíme, aby popisky fungovaly stejným způsobem v různých prohlížečích. Nyní přidáme pár řádků kódu CSS.
Přidáním následující části kódu zobrazíme na obrazovce nápovědu, i když budou vypadat banálně a bude těžké je vizuálně oddělit od zbytku textu.
CSS pro zobrazení tooltipu .tooltip:hover span ( font-family: Calibri, Tahoma, Geneva, sans-serif; position: absolute; left: 1 em; top: 2 em; z-index: 99; margin-left: 0; width : 250px; ) .tooltip:hover img ( border: 0; margin: -10px 0 0 -55px; float: left; position: absolute; ) .tooltip:hover em ( font-family: Candara, Tahoma, Geneva, sans-serif ; velikost písma: 1,2 em; váha písma: tučné; zobrazení: blok; výplň: 0,2 em 0 0,6 em 0; ) .classic ( výplň: 0,8 em 1 em; ) .custom ( výplň: 0,5 em 0,8 em 0,8 em 2 em ; ) * html a:hover ( pozadí: průhledné; ) Je vyžadován řádek * htmlMožná se ptáte, proč je ve výše uvedeném kódu zahrnut poslední řádek? Nastavuje průhlednost pozadí odkazu. Při testování popisků jsem v IE6 objevil podivný efekt, který nebylo možné odstranit, dokud existovalo pozadí odkazu!
Výše uvedený kód zajišťuje funkčnost popisků. Jsou zobrazeny na obrazovce, ale je poměrně obtížné je oddělit od obecného textu. Neexistují žádná barevná schémata, která by zvýraznila text popisku na stránce.
Nastavit barevné schéma pro popisky/Následující kód nastavuje barevné schéma pro každý z pěti stylů popisků.
Po změně kódu stránky a jeho aktualizaci v prohlížeči se při najetí myší na odkaz zobrazí tooltipy téměř stejně ve všech prohlížečích.
CSS kód pro barevné schéma .classic ( pozadí: #FFFFAA; okraj: 1px plný #FFAD33; ) .kritický ( pozadí: #FFCCAA; rám: 1px plný #FF3334; ) .help ( pozadí: #9FDAEE; rám: 1px plný # 2BB0D7; ) .info ( pozadí: #9FDAEE; okraj: 1px plný #2BB0D7; ) .warning ( pozadí: #FFFFAA; rám: 1px plný #FFAD33; )CSS kód je velmi jednoduchý, ale dává skvělý vzhled popiskům a dělá svou práci všude. Barevné schéma lze změnit dle vašeho uvážení.
Několik doteků CSS3 pro pokročilé zobrazení popiskůNež dokončíme tento tutoriál, přidáme několik řádků kódu CSS3, abychom do našich tipů přidali vizuální efekty. Nastavíme zaoblené rohy pomocí vlastnosti border-radius a přidáme nějaký rozměr pomocí vlastnosti box-shadow.
Protože žádná z těchto vlastností není globálně podporována, budou fungovat pouze v některých nejnovějších verzích prohlížeče. Ale tam, kde fungují, budou popisky vypadat elegantně a sexy!
Přidejte níže uvedený kód do selector.tooltip:hover span a obnovte stránku.
Vizuální efekty pro ohraničení, stíny a průhlednost zvednou nápovědu nad text stránky a učiní informace kontrastní a snadno čitelné.
Můžete si všimnout, že se nepoužívají pouze oficiální vlastnosti CSS3, ale také rozšíření pro Mozillu a WebKit.
Další vlastnosti CSS pro nové prohlížeče border-radius: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0,1); -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0,1); -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0,1); souhrnTento tutoriál ukazuje, že vylepšení rozhraní nevyžaduje mnoho úsilí. Kromě toho stojí za to zopakovat si zkušenosti s používáním CSS, které se může hodit při nastavení nové úrovně interaktivity webové aplikace.