Popisky pomocí CSS3.
Author: Dmitry Burobin
V tomto článku Vám ukažu, jak se dají udělat originální popisky prostřednictvím CSS3. Použíjeme CSS přechody a pseudo-prvky :before a :after
V demonstrační ukázce jsou odkazy na sociální sítě s názvy v popiscích.
HTML
Pro demonstraci použijeme neuspořádaný seznam:
<ul class="tt-wrapper">
<li><a class="tt-gplus" href="#"><span>Google Plus</span></a></li>
<li><a class="tt-twitter" href="#"><span>Twitter</span></a></li>
<li><a class="tt-dribbble" href="#"><span>Dribbble</span></a></li>
<li><a class="tt-facebook" href="#"><span>Facebook</span></a></li>
<li><a class="tt-linkedin" href="#"><span>LinkedIn</span></a></li>
<li><a class="tt-forrst" href="#"><span>Forrst</span></a></li>
</ul>
CSS
Prvky seznamu se posunují doleva a odkazy budou vypadát následovně:
.tt-wrapper li a{
display: block;
width: 68px;
height: 70px;
margin: 0 2px;
outline: none;
background: transparent url(../images/icons.png) no-repeat top left;
position: relative;
}
Každý odkaz bude mít odlišnou polohu pozadí:
.tt-wrapper li .tt-gplus{
background-position: 0px 0px;
}
.tt-wrapper li .tt-twitter{
background-position: -68px 0px;
}
.tt-wrapper li .tt-dribbble{
background-position: -136px 0px;
}
.tt-wrapper li .tt-facebook{
background-position: -204px 0px;
}
.tt-wrapper li .tt-linkedin{
background-position: -272px 0px;
}
.tt-wrapper li .tt-forrst{
background-position: -340px 0px;
}
Prvek span funguje jako popisek a bude schovan pomocí průzračností. Použijeme efekt projevování popisku, tak že se bude zobrazovat postupně ze zhora, proto stanovíme vlastnost bottom rovnou 100px.
.tt-wrapper li a span{
width: 100px;
height: auto;
line-height: 20px;
padding: 10px;
left: 50%;
margin-left: -64px;
font-family: 'Alegreya SC', Georgia, serif;
font-weight: 400;
font-style: italic;
font-size: 14px;
color: #719DAB;
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
text-align: center;
border: 4px solid #fff;
background: rgba(255,255,255,0.3);
text-indent: 0px;
border-radius: 5px;
position: absolute;
pointer-events: none;
bottom: 100px;
opacity: 0;
box-shadow: 1px 1px 2px rgba(0,0,0,0.1);
transition: all 0.3s ease-in-out;
}
Pro formování ukazatele použijeme pseudo-prvky :before a :after. Přiřazujeme jím stejné styly a vytvořime trojúhelník pomocí průzračných rámečků s obou stran. Prvek :before slouží jako odstín pro prvek :after, proto stanovíme hodnotu rgba na černou s nízkou průzračnosti.
.tt-wrapper li a span:before,
.tt-wrapper li a span:after{
content: '';
position: absolute;
bottom: -15px;
left: 50%;
margin-left: -9px;
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid rgba(0,0,0,0.1);
}
Pseudo-prvek :after se posunuje o několik pixlů a přiřazuje se mu bíla barva:
.tt-wrapper li a span:after{
bottom: -14px;
margin-left: -10px;
border-top: 10px solid #fff;
}
Při namíření kurzorem posuneme prvek span ze zhora a zobrazíme ho:
.tt-wrapper li a:hover span{
opacity: 0.9;
bottom: 70px;
}
A máme krásne popisky. V ukázce najdete ještě tři odlišné varianty animaci popisků.
Zdroj: http://tympanus.net/codrops/2012/02/01/how-to-create-animated-tooltips-with-css3/