HTML5, CSS болон jQuery ашиглан энгийн зааварчилгааг үүсгэ. Зөөврийн хэрэгслийн зөвлөмж код
Зохиогчоос:Сайн уу. Хэрэгслийн зөвлөмж гэдэг нь тухайн элемент, ихэвчлэн зураг дээр хулганыг аваачихад гарч ирэх жижиг тайлбар бичвэр юм. Өнөөдөр бид HTML хэл дээр хэрхэн янз бүрийн аргаар зааварчилгаа хийх талаар авч үзэх болно.
Стандарт зөвлөмж
Анхдагч байдлаар гарчгийн шинж чанар нь тайлбар текстийг харуулах үүрэгтэй. Энэ нь янз бүрийн элементүүдэд ашиглагдаж болох боловч ихэвчлэн зөвхөн юу харуулж байгааг тайлбарлах зурганд ашиглагддаг.
Өмнөх нийтлэлүүдийн нэгэнд би барын зургийг ашиглан зургийн хэмжээстэй ажиллахыг харуулсан. Хэрэв та дургүйцэхгүй бол би энэ зургийг дахин ашиглах болно. Тиймээс, зөвлөмжийг харуулахын тулд та гарчгийн шинж чанарыг нэмж, хүссэн текстээ бичих хэрэгтэй.
< img src = "tiger.jpg" title = "Энэ бол бар" > |
Нэг үг эсвэл хэд хэдэн өгүүлбэр байж болно. Мөн энэ нь иймэрхүү харагдаж байна:
Зөвлөмж нь зөөвөрлөсөн даруйд биш, хэсэг хугацааны дараа жигд гарч ирдэг. Энэ бол анхдагч зан төлөв юм.
Ийм зөвлөмжийн гол асуудал бол түүнийг загварчлах боломжгүй юм. Энэ асуудлыг хэрхэн шийдвэрлэх вэ? Бид өөр арга замаар зөвлөгөө өгөх хэрэгтэй болно. Одоо би чамд хосуудыг үзүүлье.
Цэвэр css арга
Зургийн зөвлөмжийг сайхан харуулах боломжийг олгодог маш сонирхолтой арга. HTML тэмдэглэгээ нь энгийн бөгөөд зөвхөн зургийг блок саванд хийх шаардлагатай бөгөөд бид тодорхойлогчийг зааж өгөх бөгөөд ингэснээр бид дараа нь хэв маягт хандах боломжтой болно.
< div id = "tiger" data - name = "Суматра бар"> < img src = "tiger.jpg" > < / div > |
Энд танд ойлгомжгүй байж болох цорын ганц зүйл бол өгөгдлийн нэрийн шинж чанар юм. Гол нь энэ нь өгөгдлийн шинж чанар гэж нэрлэгддэг бөгөөд дангаараа юу ч хийдэггүй, гэхдээ түүний утгыг css болон javascript-д ашиглах боломжтой байдаг нь зарим тохиолдолд үүнийг ашигтай болгодог. Та үүнийг дараа нь харах болно.
Тиймээс эхлээд савны хэв маягийг тайлбарлая. Бидэнд харьцангуй байрлал хэрэгтэй, учир нь бид блокыг бүхэлд нь биш, харин эх блоктой харьцуулан байрлуулахын тулд тайлбар текст бүхий блокыг бүрэн байрлуулах болно.
#tiger(байрлал: харьцангуй; дэлгэц: inline-block; )
#бар( албан тушаал: харьцангуй; дэлгэц: inline - блок; |
Блок шугамын дэлгэц нь блокийг (мөн үүнтэй хамт бидний үүсгэх хэрэгслийн зөвлөмж бүхий блок) цонхны бүхэл бүтэн өргөнөөр сунгахаас сэргийлнэ. Санамжийг өөрөө бий болгох л үлдлээ. CSS дээр псевдо элементүүдийг ашиглан үүнийг хийхэд маш тохиромжтой. Үүн шиг:
#tiger:hover: дараа (агуулга: attr(өгөгдлийн нэр); байрлал: үнэмлэхүй; зүүн: 0; доод: 0; дэвсгэр: rgba(5,13,156,.55); өнгө: #fff; текстийг зэрэгцүүлэх: төв ; font-family: курсив; үсгийн хэмжээ: 14px; дэвсгэр: 3px 0; өргөн: 100%; )
#tiger:hover:дараа ( агуулга: attr (өгөгдөл - нэр); байрлал: үнэмлэхүй; зүүн: 0; доод: 0; дэвсгэр: rgba(5, 13, 156, . 55); өнгө: #fff; текст - зэрэгцүүлэх: төв; фонт - гэр бүл: курсив; үсгийн хэмжээ: 14px; дүүргэх: 3px 0; өргөн: 100%; |
Маш олон код байдаг, гэхдээ энд төвөгтэй зүйл байхгүй. #tiger:hover:after сонгогч нь дараах утгыг илэрхийлнэ: бид зурагтай блок дээр гүйлгэх үед дараа нь псевдо-элемент үүсгэх хэрэгтэй (дараа нь дүрмийг буржгар хаалтанд жагсаасан). Агуулга: attr(өгөгдлийн нэр) шинж чанар нь блокийн текстийн утгыг тохируулдаг. Энэ нь зургийн боодлын блокийн data-name шинж чанарт бичигдсэнтэй тэнцүү байх болно.
Энэ заавар нь таныг зураг дээр гүйлгэхэд гарч ирэх боловч ердийнхөөс ялгаатай нь үүнийг гэнэт хийдэг бөгөөд харагдах байдал нь гүйлгэх агшинд шууд гарч ирдэг. Энэ тохиолдолд гөлгөр шилжилтийг псевдо-элементүүдэд дэмждэггүй тул жигд шилжилтийг хэрэгжүүлэх боломжгүй болно.
Арга 2. Цэвэр css, толигор харагдах байдал
Гэсэн хэдий ч, кодыг бага зэрэг дахин бичсэнээр та javascript ашиглахгүйгээр хэрэгслийн зөвлөмжийг жигд болгож чадна.
Дараа нь танд үзүүлэх 2 эффектийг харахын тулд Notepad эсвэл ямар нэгэн тохиромжтой код засварлагчийг нээж, миний араас бүгдийг давтахыг зөвлөж байна. Үнэн үү, үүний тулд та загварын файлыг оруулах шаардлагатай хэвээр байгаа ч хэв маягийг html дээр шошгон дээр бичиж болно
Итак, код этого примера будет немного отличаться, и это по той причине, что мы не будем использовать псевдоэлемент. Именно из-за него невозможно было применить плавные изменения. В этот раз код будет выглядеть так:
< div id = "tiger2" > < img src = "tiger.jpg" > < div class = "text" > Суматранскийтигр< / div > < / div > |
CSS код не претерпел каких-то огромных изменений:
#tiger2{ position: relative; display: inline-block; } #tiger2 .text { transition: all 0.6s; opacity: 0; position: absolute; left: 0; bottom: 0; background: rgba(5,13,156,.55); color: #fff; text-align: center; font-family: cursive; font-size: 14px; padding: 3px 0; width: 100%; transform: scale(0); } #tiger2:hover .text{ opacity: 1; }
#tiger2{ position : relative ; display : inline - block ; #tiger2 .text { transition : all 0.6s ; transform : scale (0 ) ; #tiger2:hover .text{ opacity : 1 ; |
Убираем только свойство content, так как оно поддерживается лишь псевдоэлементами. Дописываем свойство transition, которое и создает плавные переходы состояний. Ну а opacity: 0 даст нашему блоку с подсказкой полную прозрачность, поэтому он не будет виден на странице.
При наведении на блок теперь достаточно вернуть нормальную прозрачность блоку с подсказкой. Готово. Можете проверить, элемент появляется плавно.
С помощью css3 можно скрыть элемент и по-другому. С помощью трансформаций, например. Замените полную прозрачность на вот такое свойство: transform: scale(0) и размер блока будет уменьшен до нулевого, так что его попросту не будет на экране. При наведении же на блок с картинкой следует вернуть нормальный размер вот так: transform: scale(1). В таком случае эффект появления будет смотреться еще красивее. Можете убедиться в этом сами.
Как видите, на css всплывающая подсказка также может появляться медленно с красивыми эффектами.
Другие способы
Еще больше возможностей вам может дать jQuery. С помощью этой библиотеки можно написать код для вывода подсказки как самостоятельно, так и найти какой-нибудь плагин, который уже реализует это дело.
Например, в фреймворке Bootstrap тоже есть много готовых компонентов и один из них, это как раз всплывающие подсказки. Вы можете посмотреть в документации к фреймворку примеры кода, которые позволяют создать эти самые подсказки, и использовать их. Необязательно подключать весь Bootstrap, можно вообще оставить только такой компонент, как подсказки (toolptips), скачать и подключить только его.
В общем, сегодня я показал вам способы на css, как сделать красивую подсказку с резким и плавным появлением, помимо этого в вашем арсенале есть Bootstrap и jQuery. Выбирайте что угодно и реализовывайте интересные и красивые подсказки на своих сайтах!
В данной статье я хочу обсудить несколько вариантов организации подобной фишки в любой верстке. Кстати, живой пример такой реализации уже имеется у меня на сайте. Если прокрутите до комментариев на этой странице и наведете на дату комментария, сразу точно станет понятно, о чем речь. Ну а если же комментариев еще нет, можете его заодно и оставить.
Я вижу два основных метода реализации всплывающей подсказки, это при наведении, он же и самый популярный, и менее популярный при клике на какой-либо элемент. Начнем естественно с появления подсказки при наведении курсора на элемент.
Я думал в данной статье начать с самого примитива, вывод подсказки с помощью title , который не получится как-либо оформить, однако я думаю его можно пропустить, так как это и так понятно. Если вышесказанное Вам не совсем понятно, думаю, после изучения видео об , все станет гораздо понятней.
Простой способ с оформлением, при наведении.
Здесь все не сложнее, чем в способе, который я пропустил. Только вместо атрибута title я буду использовать data-title и оформление с помощью стилей css. Собственно привожу ниже html-код:
/* Используем псевдоэлемент after для оформления самой плашки, но при этом скрываем ее, так как она должна появляться только при наведении */ .hover:after {content: attr(data-title); display: none;position: absolute; bottom: 130%; left: 0px; background-color: #fff; color: #3aaeda; padding: 5px; text-align: center; -moz-box-shadow: 0 1px 1px rgba(0,0,0,.16); -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16);font-size: 12px;} /* Добавляем свойство, чтобы при наведении на элемент плашка с подсказкой появилась */ .hover:hover:after{display: block;}
Здесь же хочу обратить Ваше внимание, что это только пример свойств оформления. Вы можете естественно оформить внешний вид плашки, как Вам угодно.
Всплывающая подсказка при наведении.
Это пожалуй самый популярный способ реализации данной возможности. По крайней мере я им пользуюсь чаще всего.
В данном примере так же не вижу ничего особенного, однако побольше, но и результат будет получше и без использования атрибута data-title . Контейнер в данном случае служит оболочкой для наших элементов, которые будут использованы для реализации подсказки. А так же сама плашка будет позиционироваться относительно контейнера.
/* задаем относительное позиционирование контейнеру */ .block{position:relative;} /* Оформление скрытого элемента по умолчанию */ .hidden {display: none; position: absolute; bottom: 130%; left: 0px; background-color: #fff; color: #3aaeda; padding: 5px; text-align: center; -moz-box-shadow: 0 1px 1px rgba(0,0,0,.16); -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16); font-size: 12px;} /* Дополнительное оформление скрытого элемента(необязательно) */ .hover + .hidden:before {content: " "; position: absolute; top: 98%; left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; height: 0; width: 0; border: 7px solid transparent; border-right: 7px solid #fff; border-color: #fff transparent transparent transparent; z-index: 2;} /* Дополнительное оформление скрытого элемента(необязательно) */ .hover + .hidden:after {content: " "; position: absolute; top: 100%; left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; height: 0; width: 0; border: 7px solid transparent; border-right: 7px solid #fff; border-color: rgba(0,0,0,.16) transparent transparent transparent; z-index: 1;} /* Появление скрытого элемента при наведении */ .hover:hover + .hidden{display: block;}
Именно эти два варианта можно использовать у Вас на сайте для выведения всплывающей подсказки при наведении курсора.
Существуют еще два способа, однако они практически идентичны, за исключением того, что появление элемента происходить будет при клике по элементу, который всегда отображается на сайте.
Простой способ с оформлением, при клике.
В случае с кликом, код будет выглядеть абсолютно так же. Единственное, что для удобства я заменил класс некоторых элементов. А так же используется псевдокласс focus вместо hover . Еще здесь стоит отметить, что чтобы данный способ срабатывал, необходимо заменить на , то есть на гиперссылку.
?
Css код в этом случае аналогичен появлению плашки при наведении, только использованы для удобства другие классы. И для правильной работы меняем псевдокласс на focus .
/* Используем псевдокласс after для оформления самой плашки, но при этом скрываем ее, так как она должна появляться только при клике */ .focus:after {content: attr(data-title); display: none;position: absolute; bottom: 130%; left: 0px; background-color: #fff; color: #3aaeda; padding: 5px; text-align: center; -moz-box-shadow: 0 1px 1px rgba(0,0,0,.16); -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16);font-size: 12px;} /* Добавляем свойство, чтобы при клике на элемент плашка с подсказкой появилась */ .focus:focus:after{display: block;}
Как видите разницы практически нет.
Всплывающая подсказка при клике.
Этот способ при клике так же будет более актуален, если Вам требуется оформить подсказку немного лучше нежели это возможно в предыдущем варианте.
И собственно оформление плашки:
/* задаем относительное позиционирование контейнеру */ .block{position:relative;} /* Оформление скрытого элемента по умолчанию */ .hidden {display: none; position: absolute; bottom: 130%; left: 0px; background-color: #fff; color: #3aaeda; padding: 5px; text-align: center; -moz-box-shadow: 0 1px 1px rgba(0,0,0,.16); -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.16); box-shadow: 0 1px 1px rgba(0,0,0,.16); font-size: 12px;} /* Дополнительное оформление скрытого элемента(необязательно) */ .focus + .hidden:before {content: " "; position: absolute; top: 98%; left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; height: 0; width: 0; border: 7px solid transparent; border-right: 7px solid #fff; border-color: #fff transparent transparent transparent; z-index: 2;} /* Дополнительное оформление скрытого элемента(необязательно) */ .focus + .hidden:after {content: " "; position: absolute; top: 100%; left: 10%; margin-left: -5px; border-width: 5px; border-style: solid; height: 0; width: 0; border: 7px solid transparent; border-right: 7px solid #fff; border-color: rgba(0,0,0,.16) transparent transparent transparent; z-index: 1;} /* Появление скрытого элемента при клике */ .focus:focus + .hidden{display: block;}
Как Вы можете наблюдать ничего сложного нет. К тому же можно организовать изменения состояний, как по наведению, так и по клику. Хотя я честно говоря, не могу сказать насколько актуален способ по клику.
Существует так же имитация последнего примера с помощью , однако его использование мне кажется не совсем правильным именно для организации всплывающей подсказки у себя на сайте. Если Вы со мной категорически не согласны, добро пожаловать в комментарии.
Видео урок — Всплывающая подсказка без скриптов.
На этом у меня все. Всем удачи.
На этом уроке мы сделаем всплывающую подсказку при наведении на иконку на чистом CSS . Точно такой же принцип можно применить к картинке. Перейдите для просмотра демо страницы .
HTML разметка
Создадим список из пяти пунктов. Внутри каждого пункта поместим тег i с нужной иконкой, просто скопировав код конкретной иконки с сайта Font Awesome .
Под тегом иконки пропишем тег span с соответствующим коротким текстом-подсказкой.
Удобные номера
Кредитные карты
Душ в номере
Завтрак включен
Питомцы OK
После этого подключаем файл стилей - style.css . Меняем положение иконок из вертикального положения в горизонтальное.
Для этого родительскому контейнеру прописываем значение - flex .
Ul {
display: flex;
}
Раскрашиваем фоновую основу под иконками и цвет самих иконок.
Ul li {
background: #cecfcf;
color: #fff;
}
Размер иконки задается через размер шрифта.
Ul li {
font-size: 40px;
}
Внешний вид иконочного ряда уже сформирован.
При наведении курсора на иконку, меняется цвет иконки и вид курсора.
Ul li:hover {
color: #03a9f4;
cursor: pointer;
}
Всплывающая подсказка
При наведении на иконку, будет всплывать текстовая подсказка в прямоугольном блоке, в HTML разметке - это текст в теге span . Расположим подсказки выше иконок.
Ul li span {
position: absolute;
top: -30px;
left: 50%;
transform: translateX(-50%) translateY(-20px);
}
Размеры боксов зададим следующие фиксированные размеры.
Ul li span {
width: 120px;
height: 24px;
}
Выравнивание текста по центру по вертикали и горизонтали.
Ul li span {
line-height: 24px;
text-align: center;
}
Цвет фона, текста и размер текста.
Ul li span {
background: #03a9f4;
color: #fff;
font-size: 14px;
}
Скругляем углы на 4 пикселя и делаем плавный переход при наведении.
Ul li span {
border-radius: 4px;
transition: .5s;
}
Всплывающая подсказка делается невидимой и прозрачной.
Ul li span {
opacity: 0;
visibility: hidden;
}
Псевдоэлемент::before
Для того, чтобы нарисовать небольшую стрелочку под блоком, мы будем использовать псевдоэлемент ::before , что на практике означает, что стрелочка реально отсутствует в HTML файле (пустой content ), а существует только в CSS файле. Стрелочка с направленным остриём на иконку - не что иное, как фигура квадрата 10x10 пикселей, повёрнутая на 45 градусов и прижатая к блоку span с отрицательным значением. В итоге квадрат трансформирован в треугольник и лежит на слое ниже z-index: -1 , чем его родитель тег span .
Сегодня мы будем создавать всплывающие подсказки на CSS. Всплывающие подсказки — это то, что можно увидеть при наведении курсора, например на ссылку, если в атрибуте title содержится ее описание.
Всплывающая подсказка может применяться как для ссылок, так и для изображений.
В неоформленном виде всплывающая подсказка выглядит вот так:
Всплывающая подсказка выводится стандартным системным методом с помощью атрибута title.
Стандартный код ссылки с всплывающей подсказкой без оформления:
Ссылка
Всплывающая подсказка CSS
Придать оформление всплывающей подсказке можно с помощью CSS. Мы разберем три варианта всплывающей подсказки на CSS .
К сожалению, нет CSS-«рецепта» в отношении оформления title, поэтому придется добавлять дополнительные атрибуты, прописывать для них оформление и добавлять их в код ссылки/изображения, для которого мы хотим сделать красивую всплывающую подсказку CSS .
В первом примере мы сделаем всплывающую подсказку CSS поверх изображения в самом низу.
Для этого мы будем использовать два атрибута: image, а для того, чтобы всплывающая подсказка работала, — ::after и data-text для вывода текста всплывающей подсказки.
CSS-стили для данного примера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | .image { display : inline-block ; position : relative ; } .image : hover :: after { content : attr (data-text) ; /* Выводим текст всплывающей подсказки*/ position : absolute ; left : 0 ; right : 0 ; bottom : 0px ; /* Положение всплывающей подсказки */ z-index : 1 ; /* Отображаем подсказку поверх других элементов */ background : rgba (0 , 255 , 102 , 0.6 ) ; /* Цвет (RGB) и степень его прозрачности */ color : #fff ; /* Цвет текста */ text-align : center ; /* Выравниваем текст по центру */ font-family : Arial, sans-serif ; /* Гарнитура шрифта */ font-size : 11px ; /* Размер текста подсказки */ padding : 5px 10px ; /* Поля */ border : 1px solid #333 ; /* Параметры рамки */ } |
Image { display: inline-block; position: relative; } .image:hover::after { content: attr(data-text); /* Выводим текст всплывающей подсказки*/ position: absolute; left: 0; right: 0; bottom: 0px; /* Положение всплывающей подсказки */ z-index: 1; /* Отображаем подсказку поверх других элементов */ background: rgba(0,255,102,0.6); /* Цвет (RGB) и степень его прозрачности */ color: #fff; /* Цвет текста */ text-align: center; /* Выравниваем текст по центру */ font-family: Arial, sans-serif; /* Гарнитура шрифта */ font-size: 11px; /* Размер текста подсказки */ padding: 5px 10px; /* Поля */ border: 1px solid #333; /* Параметры рамки */ }
1 | |
Результат:
Для ссылок такое оформление не подойдет, поэтому для них будем использовать немножко другие варианты.
Первый вариант будет выводить всплывающую подсказку над ссылкой.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | .podskazka{ display : inline ; position : relative ; } .podskazka : hover : after { background : #333 ; background : rgba (204 , 102 , 0 , .8) ; border-radius : 5px ; bottom : 26px ; color : #fff ; content : attr (title) ; left : 20% ; padding : 5px 15px ; position : absolute ; z-index : 98 ; width : auto ; } .podskazka : hover : before { /* Добавляем стрелочку внизу блока всплывающей подсказки */ border : solid ; border-color : #cc6600 transparent ; border-width : 6px 6px 0 6px ; bottom : 20px ; content : "" ; left : 50% ; position : absolute ; z-index : 99 ; } |
Podskazka{ display: inline; position: relative;}.podskazka:hover:after{ background: #333; background: rgba(204,102,0,.8); border-radius: 5px; bottom: 26px; color: #fff; content: attr(title); left: 20%; padding: 5px 15px; position: absolute; z-index: 98; width: auto;}.podskazka:hover:before{ /* Добавляем стрелочку внизу блока всплывающей подсказки */ border: solid; border-color: #cc6600 transparent; border-width: 6px 6px 0 6px; bottom: 20px; content: ""; left: 50%; position: absolute; z-index: 99;}
Ссылка
И последний вариант — вывод всплывающей подсказки под ссылкой. Вариант похож на предыдущий, только вывод всплывающей подсказки тут снизу.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | .tooltip { position : relative ; /* Делаем элемент родительским для всплывающих подсказок */ cursor : help ; } .tooltip span { position : absolute ; /* Выводим элемент из потока */ margin-left : -30000px ; /* И прячем далеко за краем экрана */ background-color : rgba (0 , 0 , 153 , .8) ; /* Фон всплывающего блока*/ color : #fafafa ; /* Цвет текста */ padding : 10px ; /* Отступы */ -webkit-border-radius: 5px ; /* Закругляем уголки */ -moz-border-radius: 5px ; -khtml-border-radius: 5px ; border-radius : 5px ; } .tooltip : hover span { /* При наведении */ margin-left : 0 ; /* Возвращаем из далекого заэкранного края блок на место */ width : 250px ; /* Задаем ширину */ z-index : 1000 ; /* Помещаем на самый верх */ top : 30px ; /* Отступ сверху */ left : 20px ; /* Отступ слева */ } .tooltip span: after { content : "" ; /* Добавили контент */ width : 0 ; /* Спрятали его, превратив в 0 */ height : 0 ; border-bottom : 10px solid #000099 ; /* Нижним бордером задаем цвет и высоту треугольника */ border-right : 30px solid transparent ; /* Правым - ширину треугольника вправо */ position : absolute ; /* Позиционируем относительно родительского блока */ top : -10px ; left : 10px ; } |
Tooltip { position: relative; /* Делаем элемент родительским для всплывающих подсказок */ cursor: help;}.tooltip span { position: absolute; /* Выводим элемент из потока */ margin-left: -30000px; /* И прячем далеко за краем экрана */ background-color: rgba(0,0,153,.8); /* Фон всплывающего блока*/ color: #fafafa; /* Цвет текста */ padding:10px; /* Отступы */ -webkit-border-radius: 5px; /* Закругляем уголки */ -moz-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px;}.tooltip:hover span { /* При наведении */ margin-left: 0; /* Возвращаем из далекого заэкранного края блок на место */ width: 250px; /* Задаем ширину */ z-index: 1000; /* Помещаем на самый верх */ /* Позиционируем относительно родительского блока */ top:30px; /* Отступ сверху */ left:20px; /* Отступ слева */ }.tooltip span:after{ content: ""; /* Добавили контент */ width:0; /* Спрятали его, превратив в 0 */ height:0; border-bottom: 10px solid #000099; /* Нижним бордером задаем цвет и высоту треугольника */ border-right: 30px solid transparent; /* Правым - ширину треугольника вправо */ position: absolute; /* Позиционируем относительно родительского блока */ top:-10px; left:10px;}
Обеспечение дополнительной информации о потенциально сложных элементах интерфейса пользователя является очень важной частью работы веб дизайнера при разработке удобного и доступного веб сайта.
Одним из широко используемых механизмов для вывода дополнительных сведений, кроме тех, что видны на странице, являются всплывающие подсказки(элементы дизайна для отображения подсказок об определённых элементах на экране).
В то время, как существует много инновационных решений с использованием CSS и JavaScript (с или без использования фреймворка JavaScript, например, jQuery), иногда полезно взглянуть на то, как новые технологии встряхивают давно используемые методы.
В данном уроке будет показано, как с использованием только CSS можно сделать чудесные кросс-браузерные всплывающие подсказки.
![]() |
![]() |
Всплывающие подсказки - это круто!
Где бы не нужно было объяснить аббревиацию или акроним, объяснить значение слова или дать дополнительную информацию о чём-либо, всплывающие подсказки будут простым, но эффективным решением.
Начиная с маленького жёлтого блока с текстом, который появляется над элементом, таким как изображение, и выводит содержание атрибута title (или атрибута alt , если вы к несчастью используете Internet Explorer) до основанных на скриптах изощрённых решений с использованием, всплывающие подсказки являются фантастическим инструментом, который, кажется, мало популярен в сообществе дизайнеров.
Большинство браузеров имеют стили по умолчанию для всплывающих подсказок, хотя они и выглядят не очень симпатично.
Усиление эффекта воздействия всплывающих подсказок
В то время как быстро развивающиеся стандарты с новыми методами начинают все лучше и лучше поддерживаться новыми браузерами, развитие CSS также позволяет нам делать всплывающие подсказки (которые служат заменой скучным установкам по умолчанию в браузерах, как на рисунке выше) на новом уровне детализации и оформления.
Если вы уже использовали решения на основе jQuery, то, конечно же, обратите внимание на то, что JavaScript может многое из того, что недоступно CSS(например, задержка перед исчезновением выплывающей подсказки). Но выделение и оформление может быть выполнено с помощью CSS, что способствует улучшению дизайна и вдохновляет на создание других прекрасных решений, которые выходит за рамки всплывающих подсказок.
Что мы собираемся сделать
В данном уроке мы собираемся сделать всплывающие подсказки на чистом CSS .
Это означает, что они будут работать в браузерах, которые не поддерживают CSS3 (таких, как Internet Explorer 8 и старше) — они будут выглядеть в них не так хорошо, как в новых браузерах.
Вид эффектов, таких как цвета, шрифты, изображения и рамки для всплывающих подсказок будет зависеть от того, что используется на компьютере конечного пользователя (браузера, установленных шрифтов или контраста монитора).
Расширения CSS3
Использование простых, но эффективных расширений, таких как свойства border-radius и box-shadow позволяет придать обычному прямоугольнику всплывающего сообщения новый и симпатичный вид.
Что у нас под капотом?
Начнём с кода HTML для нашего примера.
различные типы всплывающих подсказок
Для того, чтобы дать вам достаточно идей для ваших собственных проектов, мы сделаем пять различных типов всплывающих подсказок.
Каждый из них выглядит очень похоже на другие, для того, чтобы стандартизировать вывод на экран. Но вы можете потом поэкспериментировать с ними для детального изучения и изменения внешнего вида.
Кросс-браузерная совместимость
Данный механизм должен работать во всех браузерах, однако, если вам нужно, вы можете изменить его по своему усмотрению.
Основная разметка
В коде, который приведен ниже, мы используем универсальный шаблон XHTML 1.0 с обычным элементом
.Так как мы используем CSS для построения наших элементов, то с целью обучения CSS встроен в документ с помощью тега
Зарим дэлгэц уншигч эдгээр шинж чанарыг үл тоомсорлодог тул дэлгэцийн: байхгүй эсвэл харагдах байдал: далдлагдсан гэхээсээ илүү зүүн талын зүүн талын сөрөг шинж чанарыг ашиглан зааварчилгааны контентыг харагдуулахаас устгасан.
Зөвлөмжүүдэд зориулсан CSS загварууд
Бид удахгүй зааварчилгааг өөр өөр хөтчүүд дээр адилхан ажиллуулах болно. Одоо хэд хэдэн мөр CSS код нэмье.
Дараах кодыг нэмснээр бид дэлгэцэн дээр хэрэгслийн зөвлөмжийг харуулах болно, гэхдээ тэдгээр нь энгийн мэт харагдах бөгөөд бусад текстээс нүдээр харахад хэцүү байх болно.
Хэрэгслийн зөвлөмжийг харуулах CSS
.tooltip:hover span ( font-family: Calibri, Tahoma, Geneva, sans-serif; байрлал: үнэмлэхүй; зүүн: 1em; дээд: 2em; z-индекс: 99; зүүн талын зай: 0; өргөн: 250px; ) . tooltip:hover img ( хил: 0; зах: -10px 0 0 -55px; хөвөх: зүүн; байрлал: үнэмлэхүй; ) .tooltip:hover em ( font-family: Candara, Tahoma, Geneva, sans-serif; font-size : 1.2em; үсгийн жин: тод; дэлгэц: блок; дэвсгэр: 0.2em 0 0.6em 0; ) .classic (pading: 0.8em 1em; ) .custom (pading: 0.5em 0.8em 0.8em 2em; ) *html a: гүйлгэх (арын дэвсгэр: ил тод; )*html мөр хэрэгтэй
Дээрх кодын сүүлийн мөр яагаад орсон бол гэж та гайхаж байгаа байх? Энэ нь холбоосын дэвсгэрийн ил тод байдлыг тохируулдаг. Хэрэгслийн зөвлөмжийг турших явцад би IE6 дээр холбоосын дэвсгэр байгаа үед арилгах боломжгүй хачирхалтай эффектийг олж мэдсэн!
Дээрх код нь зөвлөмжийн функцийг баталгаажуулдаг. Тэдгээрийг дэлгэцэн дээр харуулсан боловч ерөнхий текстээс салгахад нэлээд хэцүү байдаг. Хуудасны зөвлөмжийн текстийг онцлох өнгөний схем байхгүй.
Зөвлөмжийн өнгөний схемийг тохируулах/
Дараах код нь зөвлөмжийн таван загвар бүрийн өнгөний схемийг тохируулна.
Хуудасны кодыг сольж, хөтөч дээр шинэчилсний дараа хулганыг холбоос дээр хулганыг хулганаар хулганаар хулганыг бараг бүх хөтөч дээр байрлуулахад зөвлөмжүүд гарч ирнэ.
Өнгөний схемд зориулсан CSS код
.classic (арын дэвсгэр: #FFFFAA; хүрээ: 1px хатуу #FFAD33; ) .critical (арын дэвсгэр: #FFCCAA; хүрээ: 1px хатуу #FF3334; ) .help (арын дэвсгэр: #9FDAEE; хүрээ: 1px хатуу #2BB0D7; ) .info (арын дэвсгэр: #9FDAEE; хүрээ: 1px хатуу #2BB0D7; ) .анхааруулах (арын дэвсгэр: #FFFFAA; хүрээ: 1px хатуу #FFAD33; )CSS код нь маш энгийн, гэхдээ энэ нь зааварчилгааг гайхалтай харагдуулдаг бөгөөд хаа сайгүй үүргээ гүйцэтгэдэг. Өнгөний схемийг өөрийн үзэмжээр өөрчилж болно.
Нарийвчилсан зөвлөмжийг харуулахын тулд CSS3-ийн цөөн хэдэн мэдрэгчтэй
Энэ зааварчилгааг дуусгахын өмнө бид зөвлөгөөндөө визуал эффект нэмэхийн тулд хэдэн мөр CSS3 код нэмнэ. border-radius шинж чанарыг ашиглан бөөрөнхий булангуудыг тогтоож, box-shadow шинж чанарыг ашиглан зарим хэмжээсийг нэмье.
Эдгээр шинж чанаруудын аль нь ч дэлхий даяар дэмжигддэггүй тул тэдгээр нь зөвхөн хамгийн сүүлийн үеийн хөтчийн зарим хувилбарт ажиллах болно. Гэхдээ тэд хаана ажилладаг бол зөвлөмжүүд нь дэгжин, тачаангуй харагдах болно!
Selector.tooltip:hover span дээр доорх кодыг нэмээд хуудсыг дахин сэргээцгээе.
Хил, сүүдэр, ил тод байдлын визуал эффектүүд нь хуудасны текстийн дээрх зөвлөмжийг өргөж, мэдээллийг ялгаатай, уншихад хялбар болгоно.
Зөвхөн албан ёсны CSS3 шинж чанаруудаас гадна Mozilla болон WebKit-ийн өргөтгөлүүдийг ашигладаг болохыг та анзаарсан байх.
Шинэ хөтчүүдэд зориулсан нэмэлт CSS шинж чанарууд
хилийн радиус: 5px 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; хайрцаг-сүүдэр: 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);Дүгнэлт
Энэхүү заавар нь интерфэйсийг сайжруулахад их хүчин чармайлт шаарддаггүйг харуулж байна. Нэмж дурдахад CSS-ийг ашиглах туршлагыг эргэн харах нь зүйтэй бөгөөд энэ нь вэб програмын харилцан үйлчлэлийн шинэ түвшинг тогтооход тустай байж болох юм.