Статьи про создание tooltips'ов уже не раз поднимались на хабре [1,2] в виду большой популярности этого элемента. Сегодня вы узнаете еще один способ как создать простые, анимированные подсказки с помощью псевдо-элементов before и after, а так же свойства transitions.

В качестве примера были сделаны иконки социальных сервисов, при наведении на которые показываются названия этих сервисов.
Итак, приступим.
Неупорядоченный список сервисов:
Основной стиль для иконок и дополнительные стили для их позиционирования.
Внутрь элементов мы спрячем всплывающие подсказки, предварительно установив нулевую прозрачность, а скорость «всплытия» сделаем равную 0.3. В первом примере подсказки будут появляться сверху, поэтому расположим их на 100 пикселей выше иконок.
Появление происходит при наведении курсора на иконки или при наведении на место, где расположена сама подсказка. Указатель будет сделан с помощью псевдо-элементов before и after и будет представлять собой треугольник с небольшой тенью.
При самом наведении, мы увеличим прозрачность блока с подсказкой до 0.9 и зададим границу появления.
Вот такой простой способ. В демо можно увидеть еще три других примера. Исходники можно скачать вот здесь.
К сожалению, примеры будут работать только в тех браузерах, которые поддерживают псевдо-элементы и свойство transitions.

В качестве примера были сделаны иконки социальных сервисов, при наведении на которые показываются названия этих сервисов.
Итак, приступим.
Неупорядоченный список сервисов:
<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>
Основной стиль для иконок и дополнительные стили для их позиционирования.
.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;
}
.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; }
Внутрь элементов мы спрячем всплывающие подсказки, предварительно установив нулевую прозрачность, а скорость «всплытия» сделаем равную 0.3. В первом примере подсказки будут появляться сверху, поэтому расположим их на 100 пикселей выше иконок.
.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;
bottom: 100px;
opacity: 0;
box-shadow: 1px 1px 2px rgba(0,0,0,0.1);
transition: all 0.3s ease-in-out;
}
Появление происходит при наведении курсора на иконки или при наведении на место, где расположена сама подсказка. Указатель будет сделан с помощью псевдо-элементов before и after и будет представлять собой треугольник с небольшой тенью.
.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);
}
.tt-wrapper li a span:after{
bottom: -14px;
margin-left: -10px;
border-top: 10px solid #fff;
}
При самом наведении, мы увеличим прозрачность блока с подсказкой до 0.9 и зададим границу появления.
.tt-wrapper li a:hover span{
opacity: 0.9;
bottom: 70px;
}
Вот такой простой способ. В демо можно увидеть еще три других примера. Исходники можно скачать вот здесь.
К сожалению, примеры будут работать только в тех браузерах, которые поддерживают псевдо-элементы и свойство transitions.