Главная->Уроки по css->Простые подсказки на CSS3
Простые подсказки на CSS3
Иногда кнопке или изображению нужно прикреплять дополнительную информацию, для того чтобы пользователь понял, для чего она вообще нужна. Единственным решением является создание простых всплывающих подсказок. В этом уроке мы покажем вам, как создать подсказки на CSS: без изображений и javascript. “Зачем мне нужны CSS подсказки?” Конечно же вы можете использовать HTML атрибут title, для того чтобы организовать систему подсказок. Дело в том, что по умолчанию данные элементы нельзя стилизовать. Если вы хотите предоставлять своим пользователям красивые подсказки, то эта статья для вас. Что и как мы будем делать Наверняка данная техника вам знакома. Я буду использовать значения позиционирования relative и absolute, для того чтобы расположить подсказки. В этой статье я не пытаюсь изобрести колесо, просто пытаюсь создать красивые подсказки на CSS3. Ниже вы можете увидеть структуру (прошу заметить, что я использую псевдо элементы :before и :after): Теперь я бы хотел перечислить технологии, которые использовал:1 Градиент Тень Псевдо элементы HTML 1 <a href="#" class="tooltip"> 2 ваш текст 3 <span>ваша подсказка</span> 4 </a> Почему ссылка? Данное решение принято только по той причине, что нам надо добиться совместимости с IE6. Данный браузер зачастую не понимает псевдо класс :hover. 01 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 02 <script type="text/javascript"> 03 $(function() { 04 if ($.browser.msie && $.browser.version.substr(0,1)<7) 05 { 06 $('.tooltip').mouseover(function(){ 07 $(this).children('span').show(); 08 }).mouseout(function(){ 09 $(this).children('span').hide(); 10 }) 11 } 12 }); 13 </script> CSS 01 .tooltip 02 { 03 position: relative; 04 background: #eaeaea; 05 cursor: help; 06 display: inline-block; 07 text-decoration: none; 08 color: #222; 09 outline: none; 10 } 11 12 .tooltip span 13 { 14 visibility: hidden; 15 position: absolute; 16 bottom: 30px; 17 left: 50%; 18 z-index: 999; 19 width: 230px; 20 margin-left: -127px; 21 padding: 10px; 22 border: 2px solid #ccc; 23 opacity: .9; 24 background-color: #ddd; 25 background-image: -webkit-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); 26 background-image: -moz-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); 27 background-image: -ms-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); 28 background-image: -o-linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); 29 background-image: linear-gradient(rgba(255,255,255,.5), rgba(255,255,255,0)); 30 -moz-border-radius: 4px; 31 border-radius: 4px; 32 -moz-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; 33 -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; 34 box-shadow: 0 1px 2px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.5) inset; 35 text-shadow: 0 1px 0 rgba(255,255,255,.4); 36 } 37 38 .tooltip:hover 39 { 40 border: 0; /* IE6 fix */ 41 } 42 43 .tooltip:hover span 44 { 45 visibility: visible; 46 } 47 48 .tooltip span:before, 49 .tooltip span:after 50 { 51 content: ""; 52 position: absolute; 53 z-index: 1000; 54 bottom: -7px; 55 left: 50%; 56 margin-left: -8px; 57 border-top: 8px solid #ddd; 58 border-left: 8px solid transparent; 59 border-right: 8px solid transparent; 60 border-bottom: 0; 61 } 62 63 .tooltip span:before 64 { 65 border-top-color: #ccc; 66 bottom: -8px; 67 } Поддержка браузеров Данный код будет работать в IE6 и IE7, но возможны некоторые искажения в отображении.