Содержание

SVG hover эффект для кнопки

Вы здесь: Главная — CSS — CSS Основы — SVG hover эффект для кнопки

Формат SVG дает новые возможности для рисования различных фигур и анимирования их. Сегодня мы рассмотрим SVG hover эффект на кнопку. Создадим внешний контейнер с классом button и внутри него поместим тег svg. Внутри парного тега svg будет располагаться тег rest, изображающий прямоугольник без заливки и с позиционированием от верхнего левого угла браузера.

<div>
    Hover Me
    <svg viewBox="0 0 150 75" xmlns="http://www.w3.org/2000/svg">
        <rect x='0' y='0' fill='none'/>
    </svg>
</div>

//CSS
body {
    background-color: #F5F5F5; /* цвет фона страницы */
    font-family: sans-serif; /* название шрифта */
}


Стилизация кнопки

. button {
    text-transform: uppercase; /* текст заглавными буквами */
    width: 150px; /* ширина кнопки */
    height: 75px; /* высота кнопки */
    color: #bf360c; /* цвет текста */
    text-align: center; /* текст по центру по горизонтали */
    line-height: 75px; /* текст по центру по вертикали */
    margin: 20px auto; /* внешние отступы у кнопки */
    position: relative; /* относительное позиционирование */
    cursor: pointer; /* курсор рука */
}

SVG располагает большим арсеналом CSS свойств, отвечающих за стиль контуров.

svg {
    position: absolute; position: relative; /* абсолютное позиционирование */
    top: 0; /* привязка к верхнему углу */
    left: 0; /* привязка к левому углу */
}

svg rect {
    stroke: #bf360c; /* цвет контура прямоугольника */
    stroke-width: 2; /* ширина контура прямоугольника */
    transition: 0. 8s; /* плавный переход между состояниями */
}


Эффект наведения

Переходим к самому главному. Мы хотим, чтобы при наведении на кнопку, увеличивалась ширина контуров прямоугольника. Кроме того, сплошной контур линии должен меняться на прерывистую линию. За это отвечает свойство

stroke-dasharray. Первым параметром данного свойства мы указываем ширину линии, а вторым параметром промежуток между линиями.

svg rect {
    stroke-dasharray: 20, 40;
}

Зададим изначально максимально длинную линию с нулевым промежутком у свойства stroke-dasharray.

svg rect {
    stroke: #bf360c;
    stroke-width: 2;
    transition: 0.8s;
    stroke-dasharray: 400, 0; /* эффект сплошной линии */
}

При наведении на кнопку вместо сплошной линии появляется пунктирная линия.

.button:hover svg rect {
    stroke-width: 5;
    stroke-dasharray: 35, 275; /* пунктир и промежуток */
    stroke-dashoffset: 40; /* смещение пунктира */
}

Посмотрите пример на CodePen

Мир фронтенда очень велик и разнообразен и как не утонуть в потоке информации? И с чего вообще начать? Я рекомендую идти от простого к сложному и последовательно изучить все базовые возможности

HTML и CSS, по моему видеокурсу «Верстка сайта с нуля 2.0».

  • Создано 07.06.2021 10:17:13
  • Михаил Русаков
Предыдущая статья Следующая статья

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.

com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:
    <a href=»https://myrusakov.ru» target=»_blank»><img src=»https://myrusakov.ru/images/button.gif» alt=»Как создать свой сайт» /></a>

    Она выглядит вот так:

  2. Текстовая ссылка:
    <a href=»https://myrusakov.ru» target=»_blank»>Как создать свой сайт</a>

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):
    [URL=»https://myrusakov. ru»]Как создать свой сайт[/URL]

Селекторы псевдоклассов и псевдоэлементов в CSS (hover, first-child, first-line и другие), отношения между тегами Html кода

Обновлено 10 января 2021 Автор: Дмитрий Иванецку
  1. Отношения между тегами Html кода — дерево документа
  2. Селекторы псевдоклассов — hover, focus и first-child
  3. Селекторы псевдоэлементов — first-line (letter), after и before

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня мы продолжим тему изучения таблицы каскадных стилей и наполнять новыми материалами справочник.

Тема селекторов в CSS, которая была начата в предыдущей статье, осталась еще не завершенной, ибо мы рассмотрели только пять из семи возможных типов (тега и класса (class), Id, универсальный и атрибутов) и на очереди остались селекторы псевдоклассов и псевдоэлементов.

Отношения между тегами Html кода — дерево документа

Давайте начнем с псевдоклассов. Тут, правда, сначала нужно будет сделать отступление. Любой браузер, получая документ с любым языком разметки, тут же начинает его разбирать. Модуль, отвечающий в браузере за это дело, обычно называют парсер — он разбирает код, исправляет ошибки и формирует так называемое дерево.

Результат работы парсера любого браузера можно увидеть с помощью некоторых плагинов или расширений для этих обозревателей. Например, все тот же незаменимый плагин для Firefox под названием Firebug показывает это самое дерево документа:

Узлы этого дерева помечены плюсиками, нажав на которые можно будет увидеть вложенные элементы языка разметки Html. Построение этого дерева и есть результат работы парсера браузера. Давайте теперь посмотрим на принципы отношения между собой отдельных узлов.

Таких взаимоотношений может быть всего три вида (очень похоже на построение генеалогического дерева — отношение между родственниками):

  1. Предки и потомки. Например, для тега, показанного на приведенном выше примере, все остальные элементы являются потомками. Для них же всех он является прародителем — предком. Т.е. все, что находится внутри — это потомки. А предками будут являться все элементы, внутри которых данный элемент лежит.
  2. Родитель и ребенок — в цепочке предки-потомки всегда есть два ближайших звена, которые будут отвечать понятиям родитель и ребенок. Т.е. у любого Html элемента есть один родитель (ближайший предок) и в то же время у него могут быть или не быть один или же несколько детей.
  3. Сестринские (братские) отношения — к ним относятся элементы, у которых один общий родитель.

Само по себе название «псевдоклассы» обозначает то, что специально в коде ни у каких элементов (тегов) такие классы (значения для атрибута Class) никто не прописывал, но у этих самых элементов периодически могут возникать определенные динамические состояния, для которых и были придуманы селекторы псевдоклассов.

Селекторы псевдоклассов — hover, focus, first-child и другие

Например, селекторы Link и Visited во всех браузерах могут использоваться только для оформления гиперссылок:

Link подразумевает под собой не посещенную ссылку (по которой пользователь еще не переходил), а Visited — посещенную. Таким образом вы можете настроить, например, изменение цвета для уже посещенных пользователем ссылок, ну или еще что-то другое (задать визуальное состояние для всех посещенных гиперссылок). Естественно, что посещенные будут учитываться именно для данного конкретного браузера и до момента очистки его истории.

Синтаксис написания селекторов псевдоклассов заключается в проставлении двоеточия после названия Html элемента, для которого вы его используете (a:visited).

a:visited {color:red;}

Следующие три селектора (active, hover и focus) могут использоваться для любых тегов:

Active соответствует клику левой кнопки мыши по тому элементу в Html коде, название которого вы прописали перед этим псевдоклассом в селекторе (в нашем примере это тег гиперссылки A). Как только левую клавишу пользователь отожмет — псевдокласс active исчезнет.

p:active {color:red}

В этом случае, при наведении курсора мыши на любой абзац текста и щелчке по левой кнопке мыши, мы увидим, что цвет этого параграфа изменится на красный. После отжатия кнопки цвет абзаца опять вернется к принятому по умолчанию. Т.е. данный псевдокласс active динамичен и будет работать абсолютно для любых тэгов (например, для контейнеров Div и т.п.). При клике на этом элементе он может изменить свое визуальное оформление в соответствии с нашими пожеланиями.

Hover — позволяет изменять визуальное оформление любого элемента в Html коде при наведении на него курсора мыши. При отведении курсора визуальное оформление элемента вернется к используемому по умолчанию.

p:hover {color:red}

Псевдокласс focus — позволяет изменять визуальное оформление тегов находящимся сейчас в фокусе. Как известно, фокус на веб странице можно переносить с помощью нажатия на клавишу Tab на клавиатуре. Причем, фокус может передаваться только между следующими элементам: ссылки и элементы форм в Html.

Псевдоклассы active и hover в браузере IE 6 работают только для элементов гиперссылок, а focus не работает вообще ни в IE 6, ни в IE 7.

Последний псевдокласс называется first-child (первый ребенок, в переводе).

:first-child {color:red}

Эта запись будет означать, что все элементы исходного кода страницы, которые являются первыми детьми своих родителей, будут покрашены в красный цвет.

First-child в IE 6 не работает, что печально.

Селекторы псевдоэлементов — first-line (letter), after и before

Во время разработки концепции CSS планировалось писать селекторы псевдоэлементов с двойным двоеточием, чтобы отличать их от псевдоклассов, но пока синтаксис таков, что все они записываются с одним двоеточием. Возможно, что в будущем будут вводить соответствующие изменения.

По самому слову «псевдоэлементы» понятно, что таких тегов в Html коде нет. На данный момент псевдоэлементов всего четыре и они приведены на расположенном чуть выше рисунке. Наверное, понятно по самому названию, что first-line будет указывать на первую линию, а first-letter — на первую букву.

Причем, оба этих псевдоэлемента применяются только к блочным тегам (заголовки, параграфы, контейнеры и т.п.) и как это ни печально, но в браузере IE 6 они тоже не работают.

p:first-line {color:red}

Что это даст? Во всех параграфах на веб странице первые строки текста окрасятся в красный цвет. Для простоты подключим CSS к языку Html с помощью тега style и пропишем соответствующее свойство с использованием псевдоэлемента first-line в селекторе параграфа:

Тогда, как мы и планировали, все первые строки в абзацах окрасятся в красный цвет:

Ну, а с помощью first-letter можно сделать, например, так называемую буквицу (когда первая буква в абзаце отличается большим размером и цветом). Для этого можно будет прописать следующие CSS плавила для данного селектора псевдоэлемента:

p:first-letter {font-size:5em; float:left; color:red}

Про Em, Ex, пиксели и другие размерности в CSS мы с вами уже говорили. Исходный код с добавленными свойствами тогда будет выглядеть так:

А сама вебстраница с буквицей, созданной с помощью селектора first-letter, будет выглядеть так:

Два оставшихся псевдоэлемента after и before нужны для формирования контента на лету. Давайте посмотрим на примере:

p:after {
content: " KtoNaNovenkogo.ru";
color:red;
}

В результате, в конце каждого абзаца на вебстранице автоматически добавится тот фрагмент, который мы указали в CSS свойстве «content» (оно используется только для псевдоэлементов after и before) и этот фрагмент будет окрашен в красный цвет:

Если бы мы вместо «after» использовали бы «before», то дополнительный контент был бы добавлен внутри каждого абзаца на странице, но уже перед его содержимым. Напрашивается вопрос — а для чего это можно использовать на практике?

Оказывается, с помощью этих псевдоэлементов можно, например, создать сложную нумерацию вида «5.2.13». Обычными средствами Html этого сделать нельзя, а с использованием before — можно.

Для того, чтобы получить такой сложно нумерованный список, используется довольно простой Html код:

Но при этом имеет место быть сложный код CSS стилей с использованием, естественно, псевдоэлементов after и before:

Все очень здорово, но, к сожалению, after и before не поддерживаются в браузерах IE 6 и IE 7. Увы и ах. В следующей статье мы поговорим про комбинации CSS селекторов и их приоритетность.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Псевдоклассы. Учебник CSS.

Глава 15

Псевдоклассы — это особые свойства, которые позволяют менять стиль элемента в зависимости от действий пользователя, а так же положения этого элемента (тега) в общем потоке документа, что позволяет разбавить дизайн страницы некой динамикой и логикой. Классическим примером применения псевдоклассов является ссылка, которая меняет свой цвет при наведении на неё курсором.

Вот список всех псевдоклассов:

  • hover — Стиль элемента на который наведён курсор мыши.
  • active — Стиль для ссылки которая становится активной, но переход по ней еще не совершен.
  • visited — Стиль для недавно посещённой ссылки.
  • link — Стиль для нечасто посещаемой ссылки.
  • focus — Стиль элемента находящегося в фокусе.
  • first-child — Стиль первого дочернего элемента.
  • lang — Определяет язык, который используется в фрагменте документа.

О каждом псевдоклассе мы отдельно поговорим ниже, а сейчас пару слов о синтаксисе.

Для того чтобы применить тот или иной псевдокласс к элементу и определить его стиль нужно следовать следующим правилам синтаксиса:

a:hover { color:#ff0000}

где:

a — элемент (селектор), а проще тег к которому мы решили применить псевдокласс в нашем случае это ссылка.
:hover — после двоеточия собственно нужный нам псевдокласс.
{color:#ff0000} — ну и блок объявления стилей в фигурных скобках.

А вся эта запись вместе будет говорить о том, что если навести курсором на такую ссылку — то она покраснеет.

Так собственно мы подошли к первому, самому популярному, псевдоклассу hover.

Как Вы уже, наверное, догадались, псевдокласс hover активизируется в том случае, если на элемент наведен курсор.

Ну а раз уж догадались просто покажу пример:

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<title>Псевдоклассы</title>
<style type=»text/css»>
.menu {
display: block;
width: 180px;
background-color:#fff8dc;
color:#008;
font-size: 16px;
text-decoration: none;
padding: 3px;
}
.menu:hover {
display: block;
width: 180px;
background-color:#b8860b;
color:#fff;
padding: 3px;
font-size: 16px;
text-decoration: none;
}
tr:hover {
background-color:#b8860b;
}
</style>
</head>
<body>
<p>Чем Вам не блок навигации по сайту?</p>
<a href=»#»>Главная</a>
<a href=»#»>Карта сайта</a>
<a href=»#»>Купить слона</a>
<a href=»#»>Продать слона</a>
<a href=»#»>Взять слона на прокат</a>
<hr>
<p>А вот ещё один распространенный трюк. . строки в таблице подсвечиваются при наведении на них курсором.</p>
<table border=»1″ bordercolor=»#ccc» cellpadding=»1″ cellspacing=»0″>
<tr>
<td>Иванов</td><td>+</td><td>&nbsp;</td><td>&nbsp;</td><td>+</td><td>&nbsp;</td><td>&nbsp;</td>
</tr>
<tr>
<td>Петров</td><td>&nbsp;</td><td>+</td><td>&nbsp;</td><td>&nbsp;</td><td>+</td><td>&nbsp;</td>
</tr>
<tr>
<td>Сидоров</td><td>&nbsp;</td><td>&nbsp;</td><td>+</td><td>&nbsp;</td><td>&nbsp;</td><td>+</td>
</tr>
</table>
</body>
</html>

Несколько слов к примеру выше. .

Как Вы наверное заметили в качестве селектора псевдокласса может выступать не только какой либо элемент — тег, но и класс или идентификатор. Так в примере к классу .menu применён псевдокласс hover и синтаксис приобретает следующий вид:

.menu:hover { color:#ff0000;}

Не запутались в терминологии?

Простыми словами мы сказали браузеру что мол подсвечивай красным только те ссылки которые находится в навигационном блоке (выведены в класс.menu ), а остальное оставь как есть!

Псевдокласс hover может быть применён к любому элементу, выводимому на экран, так в нашем примере, для того чтобы организовать подсветку строк таблицы мы применили его к тегу <tr>. Однако следует отметить, что браузер Internet Explorer 6 и его более ранние версии поддерживает псевдокласс hover только для ссылок — тег <a>, так что, к примеру, строки таблицы, при наведении на них курсора, в браузерах IE6 и ниже подсвечиваться не будут!

Рассмотрим сразу три псевдокласса созданных для работы со ссылками.

  • active — Стиль активной ссылки.
  • visited — Стиль для недавно посещённой ссылки.
  • link — Стиль для нечасто посещаемой ссылки.

Сначала покажу пример:

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<title>Псевдоклассы и ссылки</title>
<style type=»text/css»>
a:link {color:#0000ff}
a:active {color:#ff0000}
a:visited {color:#008000}
</style>
</head>
<body>
<a href=»#1″>Ссылка на первый якорь</a>
<a href=»#2″>Ссылка на второй якорь</a>
<a href=»#3″>Ссылка на третий якорь</a>
<hr>
<a name=»1″><h5>Первый якорь</h5></a>
<p>Псевдокласс link, в этом примере, указывает, что все не посещенные ссылки должны отображаться синим цветом. </p>
<a name=»2″><h5>Второй якорь</h5></a>
<p>Попробуйте нажить и удерживать на одну из не посещенных ссылок, чтобы увидеть для работу псевдокласса active.</p>
<a name=»3″><h5>Третий якорь</h5></a>
<p>visited — псевдокласс который, в этом примере, говорит о том, что все посещенные ссылки должны отображаться зеленым цветом.</p>
</body>
</html>

Теперь расскажу более подробно.

Псевдокласс active присваивает ссылке определённый стиль в тот момент когда эта ссылка активна, то есть в тот момент когда пользователь нажал на ссылку, но еще не отпустил кнопку мыши. Короче active — это стиль ссылки в момент клика по ней.

Браузеры некоторое время помнят, на какие ссылки нажимал пользователь в последнее время, так вот, псевдокласс visited указывает стиль ссылки которая недавно посещалась пользователем.

Псевдокласс link описывает стиль ссылки, которая ранее не посещалась пользователем. Надо отметить, что никакой ощутимой разницы между записью a {…} и a:link {…} нет, так что применение данного псевдокласса в этом случае ровным счетом ничего не меняет.

Все три вышеперечисленных псевдокласса предназначены для работы с ссылками, однако псевдокласс active может быть применён к любому элементу — работать будет везде, кроме браузера Internet Explorer 6 и ниже.

Данный псевдокласс определяет стиль элемента, если тот находится в фокусе. Теперь собственно о том, что такое фокус?.. как в случае с оптикой и иллюзией, слово фокус в CSS обозначат, что некий объект, а точнее элемент, находится в центре внимания наблюдателя — пользователя. Такими элементами могут быть теги <a> <input> <select> и <textarea>.

Посмотрите на пример:

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4. 01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<title>Псевдокласс focus</title>
<style type=»text/css»>
input:focus {color: red}
</style>
</head>
<body>
<form>
<input type=»text» value=»Введите текст в эту форму» size=»30″>
</form>
<p>Ввели? а теперь щелкните по пустому месту на экране чтобы форма потеряла фокус.</p>
</body>
</html>

В примере текст в текстовом поле <input> изначально чёрный, но как только элемент получает фокус — то есть тогда когда пользователь кликнет по данному полю и начнет набирать текст, он окрасится красным.

Вот и весь фокус-покус..

Думаю, в ходе обучения CSS Вы уже поняли, что все элементы можно определить как родительские или дочерние и что элемент родитель может содержать в себе несколько дочерних элементов, ну например:

<div>— блок родитель
<p></p> — первый дочерний элемент
<p></p> — второй дочерний элемент
</div>

Так вот псевдокласс first-child определят стиль первого дочернего элемента находящегося в родительском контейнере.

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<title>Псевдокласс first-child</title>
<style type=»text/css»>
div {
margin: 20px;
padding: 30px;
background-color: #c0e4ff;
border: 2px solid #008000
}
p {
color: #555;
background-color: #dcdcdc;
border: 2px solid #555
}
p:first-child {
color: #f00;
background-color: #c5ffa0;
border: 2px solid #008000
}
</style>
</head>
<body>
<div>
<p>первый дочерний параграф — он выделен псевдоклассом first-child</p>
<p>второй дочерний параграф</p>
<p>третий дочерний параграф</p>
</div>
<div>
<p>и здесь первый дочерний параграф выделен хотя блок родитель уже другой</p>
<p>второй дочерний параграф</p>
</div>
</body>
</html>

Обратите внимание на тот факт, что если бы в блоке родителе перед дочерними параграфами стоял любой другой тег, заголовок <h2> к примеру, то псевдокласс first-child уже не действовал бы к первому параграфу. . так как хоть параграф то он и первый, но элемент в блоке родителе уже второй.

Применяют данный псевдокласс в тех случаях , если требуется задать разный стиль для первого и последующих элементов, например сделать «буквицу»- одну единственную в начале документа или обозначить первый абзац текста на всех страницах сайта , выделить первый пункт в списках…и т.д.

Псевдокласс lang определяет язык текста того или иного элемента или документа в целом.

Если Вы помните из курса HTML, язык документа определяют атрибуты: charset — кодировка документа и content — язык документа для тега <meta>.

<meta http-equiv=»Content-Type» Content=»text/html; Charset=Windows-1251″>
<meta http-equiv=»Content-Language» Content=»ru»>

Так вот для того чтобы определить язык отдельно взятого текстового блока используют псевдокласс lang() — в круглых скобках которого собственно и указывается язык.

Язык может быть:

  • ru — Русский
  • en — Английский
  • de — Немецкий
  • fr — Французский
  • it — Итальянский

Всё вместе пишется так:

span:lang(en) {font-style: italic}

— здесь мы указали, что текст взятый в контейнер <span> английский и что он должен отображаться курсивом.

Пример:

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01//EN» «http://www.w3.org/TR/html4/strict.dtd»>
<html>
<head>
<title>Псевдокласс lang</title>
<meta http-equiv=»Content-Type» Content=»text/html; Charset=Windows-1251″>
<meta http-equiv=»Content-Language» Content=»ru»>
<style type=»text/css»>
p:lang(ru) {color: #00f;}
p:lang(en) {color: #f00;}
</style>
</head>
<body>
<p lang=»ru»>Русский текст выделен синим</p>
<p lang=»en»>English text is chosen red</p>
</body>
</html>

Обратите внимание, что в теге, в нашем случая параграфе, мы указываем с помощью атрибута lang используемый язык и его стиль: <p lang=»en»>текст</p> прописанный в блоке CSS.

Так же псевдокласс lang позволяет определять вид кавычек для цитат (тег <q>) с помощью значения quotes — кавычки. В России привычно использовать двойные кавычки, в других странах дела обстоят иначе.

Пишется так:

q:lang(en) {quotes: «\201C» «\201D»}

В фигурных скобках после значения quotes указывается юникод символа/ов или просто смвол/ы для открывающей и закрывающей кавычки.

Пример:

<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01//EN» «http://www.w3.org/TR/html4/strict.dtd»>
<html>
<head>
<title>Псевдокласс lang. Цитаты.</title>
<meta http-equiv=»Content-Type» Content=»text/html; Charset=Windows-1251″>
<meta http-equiv=»Content-Language» Content=»ru»>
<style type=»text/css»>
div {
color:#000;
font-size: 24px;
}
q:lang(en) {quotes: «\201C» «\201D»}
q:lang(de) {quotes: «\201E» «\201C»}
q:lang(fr) {quotes: «\00AB» «\00BB»}
q:lang(ru) {quotes: «ёклмн..» «..ёпрст»}
</style>
</head>
<body>
<div>
<p>Обратите внимание на вид кавычек для цитат:<p>
<q>Цитата по умолчанию</q><br>
<q lang=»fr»>Французская цитата</q><br>
<q lang=»de»>Немецкая цитата</q><br>
<q lang=»en»>Английская цитата</q><br>
<q lang=»ru»>Русская цитата</q><br>
</div>
</body>
</html>
  • Псевдоклассы нельзя внедрять в HTML документ с помощью атрибута style. Можно только с помощью тега <style> в голове документа или внешнего CSS файла.

  • Если селектор, какого либо псевдокласса, явно не указывать, а написать вот так, например:

    :hover {color: #ff0}

    — то это будет значить, что действие данного псевдокласса будет распространятся на все элементы документа.

  • Браузер IE6 и ниже игнорирует практически все псевдоклассы.



Создание кастомного title

Кастомный «title» (в простонародье tooltip — «Подсказка»)

Проблема

  1. В мобильной версии сайта не отображался стандартный html-атрибут «title», так как нет реакции на наведение.;
  2. На сайте html-атрибут «title» содержит текст разного размера и ссылки на другие страницы, при этом перейти по ссылкам не представлялось возможным.

Решение

Для элементов на которых должны отображаться подсказки используется тег «span», к которому добавляется data-атрибут, который мы назвали «data-comment». С помощью класса «.js-span-comment» инициализируется работа js-скрипта.

Javascript использует метод innerHTML, благодаря чему мы можем вставлять содержимое атрибута в виде верстки:

Как работает Javascript код:

Пояснения к коду:

  1. Функция самовызывающаяся, сделана в виде модуля. Внутри есть главный метод init(), в котором мы ищем все подсказки на странице. Если мы не находим ни одного, тогда функция завершается;
  2. Если мы находим подсказку, тогда на документ мы вешаем слушателя с событием «click». По клику мы проверяем наличие data-атрибута. Если data-атрибут найден, мы проверяем переменную «flag», если у неё значение «true», тогда мы создаем подсказку. Создается он динамически. Переменная «flag» переключается в «false», чтобы не было создания повторной подсказки;
  3. Также мы вешаем на window событие «scroll», по которому любая открытая подсказка будет удалена из документа;
  4. Есть дополнительное условие, при котором мы проверяем ширину экрана при первичном срабатывании функции. Если ширина > 992 px., тогда на подсказку мы вешаем событие «mouseover» (когда курсор находится над тегом «span», который должен показать подсказку). Таким образом мы эмулируем событие «hover». Исчезает подсказка, только если сначала навести на неё курсор, а потом убрать. Сделано это ради того, чтобы пользователь мог скопировать содержимое, либо перейти по ссылке, указанной в подсказке.

Как позиционируется подсказка:

Системный тег «title» не зависит от ширины экрана браузера и появляется в том месте, где мы навели курсор.

В нашем случае подсказка — это «span» со своими стилями и требовалось выбрать объект, относительно которого должно быть позиционирование. Можно было привязать так же к курсору, но тогда возникли бы проблемы, когда пользователь мог вызвать подсказку у края экрана (например слева, слишком близко к краю). Поэтому было выбрано позиционирование от начала строки, потому что некоторые блоки, на которые должна быть подсказка, могут быть очень длинными и в зависимости от ширины экрана находится в разных местах.

Как работает позиционирование:

При создании подсказки мы находим координаты нашего блока с подсказкой. После чего, вычисляем координаты относительно окна браузера и позиционирования подсказки с {position:fixed} в CSS-стилях. Координаты находим с помощью метода getBoundingClientRect(). Координата «left» = это left нашего блока с подсказкой. Координата «top» = это сумма высоты нашего блока + координата «top» + 3 px. (чтобы наша подсказка не закрывала текст).

Результат

Когда требуется дополнительный функционал (см. примеры ниже), можно использовать кастомную подсказку. В остальных случаях лучше обойтись стандартным тегом «title».

  1. На мобильных устройствах появилась возможность отображать подсказки и взаимодействовать с ними:

  2. Появилась возможность копировать текст из подсказок:

  3. Появилась возможность переходить по ссылкам в подсказке:

Псевдокласс :focus | CSS — Примеры

Элементу, получившему фокус, можно задать стиль с помощью псевдокласса :focus [w3.org].

Чем отличаются :active, :focus и :hover

<style>
.input1:hover { 
  background: blue;
}
.input1:focus { 
  background: green;
}
.input1:active { 
  background: red;
}
</style>

<input type="text"/>

:active, :focus и :hover равнозначны, побеждает тот, что ниже.

<style>
.input2:active {
  background: red;
}
.input2:focus {
  background: green;
}
.input2:hover {
  background: blue;
}
</style>

<input type="text"/>

:focus для тегов HTML: input, select и textarea

<input type="text" placeholder="ФИО"/>

:focus для всех тегов HTML

:focus можно прописать для любого тега HTML, но если это не элемент формы, то нужно указывать атрибут tabindex или contenteditable.

Это тег div. Его содержимое не поменять.

<div tabindex="0">Это тег div</div>

Это тег div. Его содержимое можно менять.

<div contenteditable>Это тег div</div>

Как снять фокус CSS

  1. Кликнуть вне элемента.
  2. Кликнуть по дочернему элементу, который может иметь фокус.

    Нажатие и на зелёное поле, и на синее приведёт к смене фона. Клик по синему полю не снимет фокус.

    
    <div tabindex="0">
      <div></div>
    </div>

    Нажатие только на зелёное поле приведёт к смене фона. Клик по синему полю снимет фокус с родителя, установит фокус на внутреннем div.

    <div tabindex="0">
      <div tabindex="0"></div>
    </div>
  3. Кликнуть по элементу, который в состоянии фокуса имеет pointer-events: none;.

    Нажатие на зелёное поле приведёт к смене фона. Повторный щелчок снимет фокус.

    
    <div tabindex="0"></div>
  4. Кликнуть по дочернему элементу, если для элемента в состоянии фокуса стоит visibility: hidden;. Google Chrome не хочет, чтобы в состоянии фокуса элемент пропадал.
    
    <div tabindex="0">
      <div></div>
    </div>

Практические примеры

  1. Адаптивное горизонтальное меню для сайта на CSS
  2. Фотогалерея для сайта на CSS

Как я могу создать CSS Hover-эффекты?

Эффекты наведения CSS довольно просты в создании, а базовые эффекты наведения можно быстро и легко реализовать и изменить с помощью ряда других параметров. Каскадные таблицы стилей (CSS) — это язык, используемый при создании стиля и макета документа, созданного на языке разметки, и его можно использовать для простого создания эффектов наведения. Эффекты наведения — это изменения, которые происходят с текстом, изображениями или другими объектами в документе, когда указатель, управляемый мышью, наводится над объектом. Эффекты парения CSS обычно создаются внутри кода CSS и могут быть реализованы быстро и эффективно.

Один из самых простых типов создаваемых CSS-эффектов при наведении — это эффект, который вызывает изменение ссылки на веб-сайте при наведении указателя мыши. Например, кто-то может захотеть создать текстовую ссылку, которая выглядит как стандартный текст или имеет цвет, отличный от остальной части страницы, но при «наведении» или «наведении» она подчеркивается или ободряется. Как именно это будет сделано, обычно будет зависеть от точного кодирования, используемого на странице, но в простом случае эффект CSS-наведения можно добавить в правила CSS в разделе «style».

Для эффекта наведения CSS создается новое правило с использованием соответствующего тега для объекта, к которому добавляется эффект. Например, выбранный текст может быть частью списка или выделен в теле веб-страницы. Этот текст должен иметь определенный тег, связанный с ним в кодировке тела. С этим отмеченным тегом можно создать правило, чтобы установить эффект наведения CSS для любых объектов с данным тегом.

Например, используя текст, если вы хотите, чтобы ссылка стала подчеркнутой, когда пользователь наводит курсор на нее, вы можете начать с пометки этой ссылки внутри кода тела и создания специального правила для этого тега. В этом правиле вы можете указать, какой цвет должен иметь этот текст, легко выделяя его из окружающего текста и визуально указывая, что пользователь может захотеть навести на него курсор, что затем вызовет эффект наведения CSS. Этот эффект добавляется созданием псевдокласса «hover» к тегу для строки текста.

Например, если бы тег для текста был «a», вы бы использовали псевдокласс, который выглядел как «a: hover {…}», с желаемым эффектом наведения CSS, указанным в скобках. В предыдущем примере, если желаемый эффект заключался в подчеркивании текста при наведении на него, то в скобках читалось бы «text-ornament: underline;»; Существует несколько различных эффектов наведения, которые можно создать для разных объектов, и у каждого есть отдельная команда для создания эффекта, но в большинстве случаев процесс аналогичен.

ДРУГИЕ ЯЗЫКИ

Псевдоклассы: visited,: hover,: active не работают



CSS псевдо классов a:hover, a:visited, a:active и не работают

HTML:

<p> 
    <ul>
        <li>
            <a href="ChrisHorse.jpg"> My Photoshop Assignment #1       </a>
        </li>
        <li>
            <a href="puppies.html"> My puppies page </a>
        </li>
        <li>
            <a href="fish.html"> My Fish Page </a>
        </li>
    </ul>
</p>

CSS:

a:hover {color:green;}
a:visited {color:red;}
a:active {color:black;}
css
Поделиться Источник user2916310     24 октября 2013 в 14:46

3 ответа


  • тег hover, active и visited не работает

    Я поставил тег вокруг какой-либо текст и присвойте ему идентификатор mainpage. Затем я добавляю CCS для mainpage, но почему-то hover, active и visted эффекты вообще не отображаются. Я сделал что-то не так, определяя их? Я новичок и очень помогаю! #mainpage { color: white; text-decoration: none;…

  • Стиль 4 различных дивов с :hover,: visited и: active

    Надеюсь, кто-нибудь сможет мне в этом помочь. Я получил это HTML: <a href=http://test><div id=topleftbox></div></a> <a href=http://test><div id=toprightbox></div></a> <a href=http://test><div id=bottomleftbox></div></a> <a…



3

Правильный порядок в вашем CSS должен быть:

a:link    { color: red }    /* unvisited links */
a:visited { color: blue }   /* visited links   */
a:hover   { color: yellow } /* user hovers     */
a:active  { color: lime }   /* active links    */

Поделиться Paulie_D     24 октября 2013 в 14:50



1

Я проверил ваш код из jsfiddle . Все в порядке. Возможно, вы забыли включить свой файл css в свой файл html.

Итак, просто включите его из следующей инструкции :

<link rel="stylesheet" type="text/css" href="mystyle.css">

Поделиться lvarayut     24 октября 2013 в 14:52



0

Предполагая здесь , что ваша проблема заключается в :hover, проблема в том, что вы размещаете селектор :hover перед селектором :visited , это означает, что после того, как ваша ссылка была посещена, у нее больше не будет стиля наведения (так как он будет отменен посещенным стилем). Просто измените порядок ваших селекторов:

a:visited {color:red;}
a:hover {color:green;}
a:active {color:black;}

При этом, когда ваша ссылка была посещена, она будет красной; когда ваша ссылка будет наведена на нее, она будет зеленой, независимо от того, была ли она посещена или нет; и когда ваша ссылка активирована, она будет черной.

JSFiddle демо .

Поделиться James Donnelly     24 октября 2013 в 14:52


Похожие вопросы:


Выбор active и hover в одном объявлении?

Эй, ребята, как я могу выбрать :active и: hover псевдоклассы в одном объявлении или это невозможно? Вот что у меня есть: .hover-listing-btn:hover { color:#fff; } .hover-listing-btn:active {…


Как установить якорь последнего клика, чтобы он отличался цветом от всех других ссылок?

a:link {color:#FF0000} /* unvisited link */ a:visited {color:#00FF00} /* visited link */ a:hover {color:#FF00FF} /* mouse over link */ a:active {color:#0000FF} /* selected link */ Псевдоклассы…


Правильный способ сделать Hover/Focus/Visited по ссылкам с классом?

Как правильно указать состояние hover/focus/visited на ссылке, имеющей класс? a:focus.class{} или a.class:focus{} Оба, кажется, работают, просто интересно, какой из них считается правильным .


тег hover, active и visited не работает

Я поставил тег вокруг какой-либо текст и присвойте ему идентификатор mainpage. Затем я добавляю CCS для mainpage, но почему-то hover, active и visted эффекты вообще не отображаются. Я сделал что-то…


Стиль 4 различных дивов с :hover,: visited и: active

Надеюсь, кто-нибудь сможет мне в этом помочь. Я получил это HTML: <a href=http://test><div id=topleftbox></div></a> <a href=http://test><div…


Как стилизовать div с фоновыми изображениями с помощью псевдоклассов: active :visited :hover?

У меня есть 4 дива и я хочу стилизовать их так: http://jsfiddle.net/AcvbG HTML: <a href=http://test id=topleftbox></a> CSS: #topleftbox { background: red; background-repeat: no-repeat;…


Почему Bootstrap содержит как классы, так и псевдоклассы для focus и active?

Я пытаюсь понять, как стилизуются кнопки Bootstrap, проверяя элемент button в Chrome и используя флажки force element state, чтобы увидеть стиль для наведения, фокусировки и активных состояний (а…


css | button:hover фон все еще серый

Я заметил, что кнопки (button.term) рядом с сеткой становятся серыми при наведении курсора. Я установил псевдоклассы (hover, focus, active, visited) в белый цвет!важно, но это все равно не работает….


Как получить доступ к свойствам focus/hover/visited CSS элемента через Javascript?

Возможно, я сейчас устал и странно думаю, но я просто не могу найти, как получить значения свойств CSS, определенных в сфокусированных, зависших или посещенных состояниях элемента. Цель состоит в…


:hover работает, но rest состояний ссылки не работают (например,: link &: visited)

По неизвестной мне причине, для div с TWO внутри: Государство :hover нормально работает :link , :visited не работают Я не могу понять, почему? .menu:link { color: teal; } .menu:visited { color: red;…

Рецепт прослушивателя наведения

для Диспетчера тегов Google

Этот рецепт Диспетчера тегов Google был первоначально опубликован Lunametrics.

Что он делает? Отправляет события на уровень данных о взаимодействиях при наведении курсора, которые происходят над заданными селекторами CSS на странице. Этот рецепт предназначен только для слушателя. Он не оказывает видимого воздействия на ваш сайт и не отправляет данные в Google Analytics или другие инструменты, если вы не создадите для этого дополнительные триггеры и теги.

ИНСТРУКЦИЯ

  1. Загрузить файл контейнера
    Загрузите файл JSON контейнера (щелкните ссылку правой кнопкой мыши и выберите «Сохранить ссылку как» или «Сохранить объект как», чтобы сохранить файл JSON на свой компьютер).
  2. Импортировать файл JSON в GTM
    Войдите в свой собственный контейнер Диспетчера тегов Google и перейдите в раздел администратора сайта. В разделе «Параметры контейнера» выберите «Импортировать контейнер». Прочтите это сообщение в блоге, чтобы узнать больше об импорте файла-контейнера.
  3. Настройка элементов для отслеживания
    Измените переменную «Constant — Hover Listener CSS Selectors», добавив список CSS-селекторов, разделенных запятыми, на которых вы хотите отслеживать активность наведения. Не знаете, как это сделать? Прочтите это сообщение в блоге.
  4. Создавайте собственные теги, триггеры и переменные.
    Этот конкретный рецепт фактически не создаст для вас никаких тегов. Создайте соответствующие переменные для извлечения информации из толчка уровня данных. Вам нужно будет создать свой собственный триггер с помощью Custom Event = hover, а затем прикрепить его к любым тегам, которые вы хотите активировать.
  5. Предварительный просмотр и публикация
    Используйте параметры предварительного просмотра, чтобы протестировать этот контейнер на своем собственном сайте. Попробуйте протестировать каждое из событий, чтобы убедиться, что они работают правильно.Если все в порядке, публикуйте!
  6. Не знаете, как использовать этот рецепт?
    Прочтите сообщение в блоге Lunametrics с подробным пошаговым руководством.

Посмотреть все 40+ рецептов Диспетчера тегов Google

Hover Web Element — Веб-строительные блоки

Строительный блок Hover Web Element используется для наведения курсора на веб-элемент, такой как кнопка или div-тег, в уже открытом окне браузера при работе с веб-автоматизацией.При наведении указателя веб-элемент автоматически отображается в поле зрения. Обратите внимание, что этот блок работает только с окнами браузера, которые ранее были открыты с помощью блока «Запустить веб-браузер» или их «дочерних» окон.

Полностью развернутый блок Hover Web Element показывает следующие свойства:

Заголовок блока («Веб-элемент при наведении курсора»)

Зеленый входной разъем в заголовке используется для запуска блока.

Зеленый выходной разъем в заголовке срабатывает при успешном наведении курсора на веб-элемент.

Заголовок блока («Веб-элемент при наведении курсора») можно изменить, дважды щелкнув по нему и введя новый заголовок.

Выбрать веб-элемент

Это свойство содержит указатель для наведенного веб-элемента.

Локатор веб-элементов можно захватить, щелкнув свойство правой кнопкой мыши и выбрав «Захватить новый веб-элемент».

После настройки локатор веб-элементов можно редактировать, щелкнув правой кнопкой мыши и выбрав «Редактировать веб-элемент». Посмотрите множество различных видео-примеров из Учебного центра, чтобы узнать, как это работает.

Свойство можно очистить, щелкнув правой кнопкой мыши и выбрав «Очистить веб-элемент».

Найден элемент

Это свойство содержит найденный веб-элемент в окне браузера. Его можно использовать в качестве исходного элемента в других строительных блоках, например, для сужения поиска определенного веб-элемента, такого как ячейки таблицы.

Не найдено

Этот зеленый выходной соединитель срабатывает, если веб-элемент не найден до истечения времени ожидания (см. Ниже). Обычно это используется для ветвления потока выполнения или для явного отказа кейса путем связывания его с блоком сбоя.

Найденная позиция

Позиция холста браузера, в которой веб-элемент был найден в координатах X, Y. Верхний левый угол холста браузера находится в позиции 0, 0.

Нажмите кнопку расширения, чтобы работать с координатами X и Y отдельно.

Обратите внимание, что любой веб-элемент, который установлен как невидимый (например, с использованием класса CSS), будет иметь позицию 0, 0.

Найденная площадь

Позиция холста браузера и размер найденного веб-элемента в координатах X, Y, Ширина, Высота, начиная с самого верхнего левого пикселя.Верхний левый угол экрана находится в позиции 0, 0.

Нажмите кнопку расширения, чтобы работать с положением и размером области, а также с их вложенными вспомогательными свойствами по отдельности.

Атрибуты

Это свойство содержит список всех атрибутов найденного веб-элемента в виде пар ключ: значение. Сюда входят стандартные атрибуты HTML, такие как class, style, href, а также любые настраиваемые атрибуты, такие как data-xxx и т. Д.

Для более непосредственной работы с атрибутами может быть полезен строительный блок Get Web Attribute вместо просмотра этого списка.

Значения CSS

В настоящее время не используется.

видимый

Это свойство вернет True, если найденный веб-элемент виден.

Имя тега

Имя тега найденного веб-элемента — например, div, tr, button или input.

Исходный элемент

Установив это свойство, локатор веб-элементов будет ограничен работой только внутри исходного элемента.

Например, если в предыдущем стандартном блоке был найден веб-элемент таблицы, установив его в качестве исходного элемента, можно выполнить поиск определенного веб-элемента tr или td внутри таблицы.

Окно браузера

При установке этого свойства строительный блок будет использовать определенное окно браузера.

Использование вхождения

Выберите вхождение веб-элемента для наведения курсора, если найдено более одного.

Выберите «Все», чтобы перебрать все вхождения. При выборе «Все» отображаются подсвойства «Текущий индекс» и «Завершено» (см. Ниже).

Счетчик

Это свойство содержит общее количество найденных веб-элементов, соответствующих указанному выше локатору.

Текущий индекс

Текущий индекс при переборе всех вхождений веб-элемента. Например, если обнаружено три вхождения тега div, это свойство будет содержать 1 для первого, затем 2 для второго и, наконец, 3 для последнего.

Завершен

Этот зеленый выходной разъем срабатывает, когда итерация всех вхождений завершена.

Тайм-аут по умолчанию

Если флажок свойства «Тайм-аут по умолчанию» не установлен, значение тайм-аута составляет 10 секунд.Если установлен флажок свойства «Тайм-аут по умолчанию», то будет применимо значение «Тайм-аут по умолчанию», выбранное в настройках потока.

Тайм-аут

Максимальное время, потраченное на поиск веб-элемента, прежде чем отказаться от него и вызвать «Не найдено» (см. Выше).

Примечание. Все обращения имеют «глобальный тайм-аут», который можно настроить на панели «Настройки». Это не связано с тайм-аутом одного строительного блока. Однако запущенное дело будет автоматически отменено, если оно будет длиться дольше глобального тайм-аута.

Прокрутите, чтобы найти

Если выбрано значение, отличное от «Нет», строительный блок будет использовать прокрутку при поиске веб-элемента. Это может быть полезно при поиске в прокручиваемом контенте, таком как веб-страницы, где элементы загружаются асинхронно, например с помощью бесконечной прокрутки.

Макс повторяет

Максимальное количество прокруток перед прекращением поиска веб-элемента.

Сумма

Количество прокрутки, которое будет выполняться при каждом повторе прокрутки.

Задержка (сек)

Задержка в секундах между каждым из значений прокрутки.

Требовать действительные imgs

Если этот флажок установлен, любой локатор веб-элементов, настроенный на поиск изображения (тег img), также будет проверять, действительно ли изображение загружается правильно. LEAPWORK проверяет это, отправляя HTTP-запрос источнику изображения и проверяя, что возвращается ответ 200.

Ожидание изменения DOM

Отложить поиск веб-элемента до тех пор, пока не будет никаких изменений в DOM страницы в течение определенного периода времени, например 3 секунды.

Это полезно при ожидании скрытых обновлений в javascript. Независимо от этого флажка поиск и щелчок будут происходить после ожидания не более 30 секунд.

Тайм-аут ожидания

Количество секунд, в течение которых в DOM не должно быть изменений, прежде чем продолжить.

Ожидание запросов

Отложить поиск веб-элемента до тех пор, пока не будет активных запросов XHR в течение определенного периода времени — например, 3 секунды.

Это полезно при ожидании закулисных обновлений с XHR.Некоторые корпоративные веб-приложения используют XHR и изменения DOM за кулисами, даже заменяя существующие теги кнопок новыми. Сюда входят Microsoft Dynamics 365 и Salesforce.

Независимо от этого флажка поиск и щелчок будут выполняться после ожидания не более 30 секунд.

Тайм-аут ожидания

Количество секунд, в течение которых запросы XHR не должны быть активными, прежде чем продолжить.

Всплывающие подсказки · Bootstrap

Документация и примеры для добавления пользовательских всплывающих подсказок Bootstrap с помощью CSS и JavaScript с использованием CSS3 для анимации и атрибутов данных для локального хранилища заголовков.

Обзор

Что нужно знать при использовании плагина всплывающей подсказки:

  • Всплывающие подсказки полагаются на стороннюю библиотеку Popper.js для позиционирования. Вы должны включить popper.min.js перед bootstrap.js или использовать bootstrap.bundle.min.js / bootstrap.bundle.js , который содержит Popper.js, чтобы всплывающие подсказки работали!
  • Если вы создаете наш JavaScript из исходного кода, для него требуется util.js .
  • Подсказки
  • используются по соображениям производительности, поэтому вы должны инициализировать их самостоятельно. .
  • Всплывающие подсказки с заголовками нулевой длины никогда не отображаются.
  • Укажите контейнер : 'body' , чтобы избежать проблем с рендерингом в более сложных компонентах (например, в наших группах ввода, группах кнопок и т. Д.).
  • Всплывающие подсказки для скрытых элементов не работают.
  • Всплывающие подсказки для элементов .disabled или disabled должны запускаться на элементе оболочки.
  • При запуске из гиперссылок, охватывающих несколько строк, всплывающие подсказки будут центрированы.Используйте white-space: nowrap; на вашем s, чтобы избежать такого поведения.
  • Всплывающие подсказки должны быть скрыты до того, как соответствующие им элементы будут удалены из модели DOM.

Поняли? Отлично, давайте посмотрим, как они работают, на некоторых примерах.

Один из способов инициализировать все всплывающие подсказки на странице — выбрать их по их атрибуту data-toggle :

  $ (function () {
  $ ('[data-toggle = "tooltip"]'). tooltip ()
})  

Примеры

Наведите указатель мыши на ссылки ниже, чтобы увидеть подсказки:

Наведите указатель мыши на кнопки ниже, чтобы увидеть четыре направления всплывающих подсказок: вверх, вправо, внизу и влево.

  


  

И с добавлением собственного HTML:

    

Использование

Плагин всплывающих подсказок генерирует контент и разметку по запросу и по умолчанию помещает всплывающие подсказки после их триггерного элемента.

Запуск всплывающей подсказки через JavaScript:

  $ ('# example'). Tooltip (options)  

Markup

Требуемая разметка для всплывающей подсказки — это только атрибут данных, и заголовок , в элементе HTML, для которого вы хотите иметь всплывающую подсказку. Сгенерированная разметка всплывающей подсказки довольно проста, хотя для нее требуется позиция (по умолчанию плагином установлено значение top ).

Создание всплывающих подсказок для пользователей клавиатуры и вспомогательных технологий

Вы должны добавлять всплывающие подсказки только к элементам HTML, которые традиционно ориентированы на клавиатуру и являются интерактивными (например, ссылки или элементы управления формы).Хотя произвольные элементы HTML (например, s) можно сделать доступными для фокусировки, добавив атрибут tabindex = "0" , это добавит потенциально раздражающие и сбивающие с толку позиции табуляции на неинтерактивных элементах для пользователей клавиатуры. Кроме того, большинство вспомогательных технологий в настоящее время не выводят всплывающую подсказку в этой ситуации.

Кроме того, не полагайтесь исключительно на hover в качестве триггера для вашей всплывающей подсказки, так как это сделает ваши всплывающие подсказки невозможными для пользователей клавиатуры.

  
 Наведите указатель мыши на меня 


Текст всплывающей подсказки!

Отключенные элементы

Элементы с атрибутом disabled не являются интерактивными, то есть пользователи не могут сфокусироваться, навести на них курсор или щелкнуть их, чтобы вызвать всплывающую подсказку (или всплывающее окно).В качестве обходного пути вы захотите вызвать всплывающую подсказку из оболочки

или , в идеале сделанной с фокусировкой на клавиатуре, используя tabindex = "0" , и переопределить события указателя на отключенный элемент.

Опции

Параметры могут передаваться через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя параметра к data- , как в data-animation = "" .

Номер Номер
Имя Тип По умолчанию Описание
анимация логическое правда Применить переход CSS постепенного изменения к всплывающей подсказке
контейнер строка | элемент | ложь ложь

Добавляет всплывающую подсказку к определенному элементу.Пример: контейнер: «тело» . Этот параметр особенно полезен тем, что позволяет вам размещать всплывающую подсказку в потоке документа рядом с элементом запуска, что предотвращает отрыв всплывающей подсказки от элемента запуска во время изменения размера окна.

задержка | объект 0

Задержка показа и скрытия всплывающей подсказки (мс) — не относится к ручному типу запуска

Если указан номер, задержка применяется к скрытию / отображению

Структура объекта: задержка: {"show": 500, "hide": 100}

HTML логическое ложь

Разрешить HTML во всплывающей подсказке.

Если true, HTML-теги в заголовке всплывающей подсказки будут отображаться во всплывающей подсказке. Если false, метод jQuery text будет использоваться для вставки содержимого в DOM.

Используйте текст, если вас беспокоят XSS-атаки.

размещение строка | функция 'верх'

Как разместить всплывающую подсказку - авто | наверх | внизу | слева | Правильно.
Если указан auto , всплывающая подсказка будет динамически переориентирована.

Когда функция используется для определения размещения, она вызывается с помощью узла DOM всплывающей подсказки в качестве первого аргумента и узла DOM инициирующего элемента в качестве второго. Контекст , этот контекст установлен для экземпляра всплывающей подсказки.

селектор строка | ложь ложь Если предусмотрен селектор, объекты всплывающей подсказки будут делегированы указанным целям. На практике это используется для включения всплывающих окон динамического HTML-контента.См. Этот и информативный пример.
шаблон строка '
'

Базовый HTML-код для использования при создании всплывающей подсказки.

Заголовок всплывающей подсказки будет вставлен в .tooltip-inner .

.arrow станет стрелкой всплывающей подсказки.

Самый внешний элемент оболочки должен иметь .tooltip class и role = "tooltip" .

название строка | элемент | функция '

Значение заголовка по умолчанию, если атрибут заголовок отсутствует.

Если функция задана, она будет вызываться со своей ссылкой и этой ссылкой , установленной на элемент, к которому прикреплена всплывающая подсказка.

триггер строка 'hover focus'

Как запускается всплывающая подсказка - щелкните | парить | фокус | руководство по эксплуатации.Вы можете передать несколько триггеров; разделите их пробелом.

'manual' указывает, что всплывающая подсказка будет запускаться программно с помощью методов .tooltip ('show') , .tooltip ('hide') и .tooltip ('toggle') ; это значение нельзя комбинировать с каким-либо другим триггером.

«hover» сам по себе приведет к появлению всплывающих подсказок, которые не могут быть запущены с клавиатуры, и их следует использовать только при наличии альтернативных методов передачи той же информации для пользователей клавиатуры.

смещение | строка 0 Смещение всплывающей подсказки относительно цели. Для получения дополнительной информации обратитесь к документации по смещению Popper.js.
резервное размещение строка | массив "перевернуть" Позволяет указать, какую позицию Поппер будет использовать при откате. Для получения дополнительной информации см. Поведение Popper.js docs
граница строка | элемент 'scrollParent' Граница ограничения переполнения всплывающей подсказки.Принимает значения 'viewport' , 'window' , 'scrollParent' или ссылку HTMLElement (только JavaScript). Для получения дополнительной информации см. Документацию PreventOverflow Popper.js.
Атрибуты данных для отдельных всплывающих подсказок

Опции для отдельных всплывающих подсказок можно также указать с помощью атрибутов данных, как описано выше.

Методы

Асинхронные методы и переходы

Все методы API являются асинхронными и запускают переход .Они возвращаются к вызывающему, как только начинается переход, но до его завершения . Кроме того, вызов метода для переходного компонента будет проигнорирован .

См. Нашу документацию по JavaScript для получения дополнительной информации.

$ (). Подсказка (параметры)

Присоединяет обработчик всплывающей подсказки к коллекции элементов.

.tooltip ('показать')

Показывает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически показана (т.е.е. до того, как произойдет событие .bs.tooltip ). Это считается «ручным» запуском всплывающей подсказки. Всплывающие подсказки с заголовками нулевой длины никогда не отображаются.

  $ ('# element'). Tooltip ('show')  
.tooltip ('hide')

Скрывает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически скрыта (т.е. до того, как произойдет событие hidden.bs.tooltip ). Это считается «ручным» запуском всплывающей подсказки.

  $ ('# element'). Tooltip ('hide')  
.tooltip ('toggle')

Переключает всплывающую подсказку элемента. Возврат к вызывающей стороне до того, как всплывающая подсказка была фактически показана или скрыта (то есть до того, как произойдет событие shown.bs.tooltip или hidden.bs.tooltip ). Это считается «ручным» запуском всплывающей подсказки.

  $ ('# element'). Tooltip ('toggle')  
.tooltip ('dispose')

Скрывает и уничтожает всплывающую подсказку элемента.Всплывающие подсказки, использующие делегирование (которые создаются с использованием опции селектора ), не могут быть уничтожены индивидуально для дочерних триггерных элементов.

  $ ('# element'). Tooltip ('dispose')  
.tooltip ('enable')

Позволяет отображать всплывающую подсказку элемента. Подсказки включены по умолчанию.

  $ ('# element'). Tooltip ('enable')  
.tooltip ('disable')

Удаляет возможность отображения всплывающей подсказки элемента.Всплывающая подсказка будет отображаться только в том случае, если она будет повторно включена.

  $ ('# element'). Tooltip ('disable')  
.tooltip ('toggleEnabled')

Переключает возможность отображения или скрытия всплывающей подсказки элемента.

  $ ('# element'). Tooltip ('toggleEnabled')  
.tooltip ('update')

Обновляет положение всплывающей подсказки элемента.

  $ ('# element'). Tooltip ('update')  

События

Показан
Тип события Описание
показать.bs.tooltip Это событие запускается немедленно при вызове метода экземпляра show .
.bs.tooltip Это событие вызывается, когда всплывающая подсказка становится видимой для пользователя (ожидает завершения переходов CSS).
hide.bs.tooltip Это событие запускается сразу после вызова метода экземпляра hide .
hidden.bs.всплывающая подсказка Это событие вызывается, когда всплывающая подсказка перестает быть скрытой от пользователя (будет ожидать завершения переходов CSS).
Insert.bs.tooltip Это событие запускается после события show.bs.tooltip , когда шаблон всплывающей подсказки был добавлен в DOM.
  $ ('# myTooltip'). On ('hidden.bs.tooltip', function () {
  // сделай что-нибудь…
})  

Стиль наведения, фокуса и активного состояния по-разному

16 октября 2019

Я стилизовал : hover , : focus и : active заявляет одинаково в течение многих лет.Не могу вспомнить, когда я начала так укладывать. Вот код, который я всегда использую:

  // Не лучший подход. Я объясню почему в этой статье
.selector {
  &: навести,
  &: фокус,
  &: active {
    // Стили здесь
  }
}
  

По мере того как я уделял больше внимания доступности клавиатуры (и, следовательно, уделял больше внимания фокусировке), я начал думать, что мы не должны одинаково оформлять наведение, фокус и активные состояния.

Для состояний наведения, фокуса и активного состояния должны быть разные стили.

Причина проста: это разные государства!

Сегодня я хочу показать вам волшебный способ легко стилизовать все три состояния.

Начнем с : наведите курсор на .

Стилизация состояний при наведении

: hover срабатывает, когда пользователь наводит курсор мыши на элемент.

Состояния наведения обычно представлены изменением background-color (и / или color ) . Разница в состояниях не должна быть очевидной, потому что пользователи уже знают, что они на что-то ориентируются.

  кнопка {
  цвет фона: #dedede;
}

button: hover {
  цвет фона: #aaa;
}
  

Состояния фокуса стилей

: фокус активируется, когда элемент получает фокус. Элементы могут получать фокус двумя способами:

  1. Когда пользователи переходят в фокусируемый элемент
  2. Когда пользователи нажимают на элемент, на который можно сфокусироваться

Фокусируемые элементы:

  1. Ссылки ( )
  2. Кнопки (
  3. Элементы формы ( вход , текстовое поле и т. Д.)
  4. Элементы с tabindex

Вот несколько важных моментов, на которые следует обратить внимание:

  1. Пользователи не могут перейти к элементу с tabindex = "- 1" , но могут щелкнуть по нему. Щелчок вызывает фокусировку.
  2. В Safari и Firefox (Mac) щелчки не фокусируются на элементе
  3. Когда вы щелкаете ссылку ( ), фокус остается на ссылке, пока вы не уберете палец с мыши.Когда вы поднимаете палец, фокус перенаправляется в другое место, если href указывает на действительный идентификатор id на той же странице.

Чтобы сфокусироваться, мы больше заботимся о том, чтобы пользователи переходили по элементам с помощью табуляции, чем нажимали на них.

Когда пользователь попадает на вкладку, он не знает, на что будет направлен фокус. Им остается только догадываться. Вот почему нам нужно заметно изменить внимание пользователя к сфокусированному элементу .

Стиль фокуса по умолчанию в большинстве случаев подходит.Если вы хотите создать собственный фокус, подумайте об этих четырех вещах:

  1. Добавление контура
  2. Создание анимации с движением
  3. Изменение цвета фона
  4. Изменение цвета

Поскольку background-color и color изменения часто сопровождают : hover , имеет смысл, что контуров или анимаций должны сопровождать : focus .

Вы можете использовать комбинацию свойств контура , границы и box-shadow для создания удобных стилей фокуса.Я рассказываю, как это сделать, в разделе «Создание собственного стиля фокуса».

  кнопка {
  цвет фона: #dedede;
}

button: hover {
  цвет фона: #aaa;
}

button: focus {
  наброски: нет;
  box-shadow: 0 0 0 3px lightskyblue;
}
  

Стилизация активных состояний

Когда вы взаимодействуете с вещами в реальной жизни, вы ожидаете какой-то обратной связи. Например, если вы нажмете кнопку, вы ожидаете, что она будет нажата.

Этот отзыв полезен и для веб-сайтов.Вы можете стилизовать момент «нажатия кнопки» с помощью : active . : активный триггер срабатывает при взаимодействии с элементом . Здесь взаимодействие означает:

  1. Удерживая левую кнопку мыши на элементе (даже на несфокусированном)
  2. Удерживание клавиши пробела (на кнопках)
  кнопка: активна {
  цвет фона: # 333;
  цвет границы: # 333;
  цвет: #eee;
}
  

Две странные вещи, на которые следует обратить внимание:

  1. Удерживая нажатой клавишу Пробел, активирует : активен на кнопках, но удерживание клавиши Enter - нет.
  2. Enter вызывает ссылки, но не создает активного состояния. Пробел вообще не запускает ссылки.

Стили по умолчанию для ссылок

Ссылки имеют активный стиль по умолчанию. Они становятся красными при нажатии.

Взаимосвязь между активным и фокусным

Когда вы удерживаете левую кнопку мыши на фокусируемом элементе, вы запускаете активное состояние . Вы также одновременно запускаете состояние фокуса .

Когда вы отпускаете левую кнопку мыши, фокус остается на элементе

👆 верно для большинства элементов, на которые можно сфокусироваться, кроме ссылок и кнопок.

Для ссылок:

  1. Когда вы удерживаете левую кнопку мыши: триггеры : активны и : фокус состояние в Firefox и Chrome Активны только триггеры в Safari (проверено только на Mac)
  2. Когда вы отпускаете левую кнопку мыши: : фокус остается на ссылке (если href ссылки не совпадает с идентификатором на той же странице). В Safari фокус снова возвращается к .

Для кнопок:

  1. Когда вы удерживаете левую кнопку мыши: триггеры : активны и : фокус состояние только в Chrome.Не запускает : фокус вообще в Safari и Firefox (Mac). Я писал об этом странном поведении здесь.

Если вы хотите, чтобы клики фокусировались на кнопках, вам нужно добавить этот JavaScript как можно раньше. (Что касается того, почему, вы можете прочитать статью, на которую я ссылался выше, для получения дополнительной информации).

  document.addEventListener ('click', event => {
  if (event.target.matches ('button')) {
    event.target.focus ()
  }
})
  

После того, как у вас будет этот код, поведение кнопок при нажатии станет:

  1. Когда вы удерживаете левую кнопку мыши: триггеры : активны во всех браузерах.Триггеры : фокус только на Chrome.
  2. Когда вы отпускаете левую кнопку мыши: триггеры : фокус на Safari и Firefox (Mac). : фокус остается на кнопке для других браузеров.
Поведение кнопки в Safari после добавления фрагмента кода JavaScript выше.

Теперь вы знаете о состояниях наведения, фокуса и активного состояния, я хочу поговорить о стилизации всех трех.

Волшебное сочетание

Волшебная комбинация позволяет пользователям получать обратную связь, когда они наводят курсор, фокусируются и взаимодействуют с элементом.Вот код, который вам нужен:

  .элемент: hover,
.element: active {
  / * Изменить цвет фона / текста * /
}

.element: focus {
  / * Показать схему / *
}
  

Для пользователей мыши:

  1. Когда пользователь наводит курсор на элемент, изменяется background-color (и / или color ). Они получают обратную связь.
  2. Когда пользователь щелкает элемент, отображается контур фокуса. Они получают обратную связь.

Для пользователей клавиатуры:

  1. Когда пользователь входит в элемент, отображается контур фокуса.Они получают обратную связь.
  2. Когда они взаимодействуют с элементом, изменяется background-color (и / или color ). Они получают обратную связь.

Лучшее из обоих миров!

  1. Я не тестировал полностью магическую комбинацию. Это проверка правильности концепции. Буду признателен, если вы поможете мне с тестами и дадите мне знать, как дела.
  2. Если вы запускаете тесты, не используйте Codepen. Состояния фокуса для ссылок в Codepen странные.Если вы наводите курсор на ссылку, контур фокуса удаляется. Почему? Я не знаю. Иногда я думаю, что лучше всего протестировать подобные вещи без каких-либо необычных инструментов. Просто старый HTML, CSS, JS.

Немагическая (но может быть лучше) комбинация

Как я уже упоминал выше, нажатие на кнопки ведет себя странно в Safari и Firefox (Mac). Если вы добавили фрагмент кода JavaScript, который я вам показал, волшебная комбинация все еще работает. Но это не идеально.

Для Safari и Firefox (Mac) происходит следующее:

  1. Когда пользователи удерживают кнопку мыши нажатой, ничего не меняется.
  2. Когда пользователь поднимает кнопку мыши, элемент получает фокус

Если вы думаете, что этого достаточно, то волшебная комбинация работает. Вы можете остановиться здесь.

Но если вы думаете, что аффорданса недостаточно, вам нужно стилизовать : hover , : focus и : active отдельно.

  .element: hover {
  / * Изменить цвет фона / текста * /
}

.element: active {
  / * Еще одно изменение цвета фона / текста * /
}

.element: focus {
  / * Показать схему / *
}
  
Поведение кнопки в Safari, если вы стилизовали все три состояния.

Вот и все! Надеюсь, вы узнали что-то сегодня!

Если вам понравилась эта статья, расскажите о ней другу! Поделитесь этим в Твиттере. Если вы заметили опечатку, я буду признателен, если вы сможете исправить ее на GitHub. Спасибо!

Получить рецепт: отслеживание наведения в Диспетчере тегов Google

—-
Получите рецепт: отслеживание наведения в Диспетчере тегов Google
// Блог Google Analytics, SEO, социальные сети и PPC »Блог

Вопрос: Можно ли отслеживать события зависания?

Ответ: Да, с нашим рецептом Google Tag Manager!

Что такое рецепт слушателя наведения?

"Из коробки" Диспетчер тегов Google довольно гибок.Доступно несколько типов триггеров, которые отслеживают определенные действия или события, такие как клики, отправка форм, изменения истории и многое другое (более подробно о триггерах читайте в публикации Зи) и могут использоваться для активации тегов.

Но Диспетчер тегов Google не отслеживает автоматически некоторые вещи, например события наведения курсора.

Dorcas написал отличный пост об этом ограничении несколько лет назад, и мы все еще в той же лодке - нам нужно специальное решение для отслеживания, когда пользователи наводят курсор на элементы на нашем сайте.

Чтобы упростить вам задачу, команда LunaMetrics создала рецепт Hover Listener, который вы можете просто импортировать в свой собственный контейнер GTM. В этом рецепте нет тегов или триггеров, поэтому вам нужно будет выполнить дополнительную настройку, чтобы увидеть данные о наведении курсора в Google Analytics.

Загрузить рецепт слушателя наведения

Как использовать рецепт слушателя наведения

1. Измените переменную {{Constant - Hover Listener CSS Selectors}}.

В переменной вы можете указать список любых CSS-селекторов, на которые вы хотите отслеживать наведение курсора на пользователя.

Вы можете найти эту переменную вместе со всем остальным, включенным в наш рецепт, в папке LunaMetrics Hover Tracking Plugin.

Если вы не знакомы с селекторами CSS, это шаблоны, которые вы можете указать для соответствия различным элементам. Их можно использовать в GTM и обеспечить большую гибкость! Перейдите к некоторым примерам, если вам нужно освежиться, или ознакомьтесь с некоторыми из этих других замечательных ресурсов:

Примеры селектора CSS

Допустим, я хочу отслеживать, когда пользователи наводят курсор на определенный элемент на одной из страниц моего сайта.Проверяя элемент с помощью панели инструментов разработчика Chrome (или инструментов веб-разработчика в Firefox), я могу видеть различные элементы и их атрибуты, которые я могу использовать для создания своего селектора.

Например, на нашей странице рецептов GTM, если я хотел отслеживать наведения курсора на квадратные изображения в левой части каждого рецепта, я мог бы легко сделать это с помощью селектора CSS.

Несколько основных селекторов:
.class
#id
element> element (прямой дочерний элемент)
element element (дочерний элемент)

Поскольку изображения, на которые я хочу настроить таргетинг, имеют общий родительский элемент div с классом «resource-image», я могу использовать несколько основных селекторов для создания селектора CSS, который соответствует всем из них:

дел.resource-image> img (соответствует любому элементу img, который является прямым потомком элемента div с классом «resource-image»)

Затем я добавил это к моей переменной в GTM, например:


Если вы хотите добавить несколько селекторов для таргетинга на различные типы элементов на вашем сайте, вы можете! Просто разделите их запятой в вашей переменной. Например, если бы у меня были другие элементы на моей странице, которые я также хотел бы отслеживать при наведении курсора, я мог бы просто добавить еще один селектор к той же переменной.

Например, это будет соответствовать нашим элементам изображения, а также любому элементу и с классом «recipe-dropdown»:

div.resource-image> img, a.recipe-dropdown

2. Убедитесь, что GTM отправляет пользовательские события "наведения курсора".

Наш тег слушателя ссылается на переменную, содержащую наши селекторы CSS. Если наведение курсора происходит над элементом, который соответствует нашим селекторам, пользовательское событие «hover» помещается в уровень данных. Вы должны увидеть это в режиме отладки!

3.Создание триггеров с помощью настраиваемого события наведения

Теперь, когда у нас есть настраиваемое событие при наведении курсора, мы можем использовать его для создания триггеров и активации наших тегов. Во-первых, вам нужно создать для этого новую пользовательскую переменную, чтобы получить значение attribute.element из уровня данных:

Затем создайте триггер настраиваемого события, который указывает наведение как событие и ваш селектор CSS. Например, следующий триггер запускает тег, когда пользовательское событие наведения курсора передается на уровень данных, И когда элемент, на который наведен курсор, совпадает с определенным селектором.

Вы можете создать уникальный триггер для каждого селектора CSS, который вы добавили в свою переменную, что позволит вам активировать разные теги в зависимости от того, какие элементы наведены.

Почему мы заботимся об отслеживании зависания?

Отслеживание

при наведении курсора может дать представление о намерениях и помочь вам определить, на чем пользователи склонны сосредотачиваться или запутаться. В нашем примере мы можем проверять идею о том, что пользователи ошибочно принимают квадратные изображения за кнопки и часто сосредотачиваются на них, прежде чем нажимать другие ссылки.Это может побудить нас сделать эти изображения удобными для навигации или изменить наши призывы к действию на странице.

Некоторые из вас, возможно, уже думают обо ВСЕХ зависаниях, которые вы хотите отслеживать, для всех элементов на вашем сайте. Но прежде чем вы начнете отслеживать наведение курсора на различные элементы на вашем сайте, спросите, почему вы хотите отслеживать это в первую очередь, и на какие вопросы эти данные могут помочь ответить. Как и в случае с отслеживанием взаимодействия с другими пользователями, должны быть цель и стратегия сбора данных о наведении, а также план их визуализации.

Есть интересные идеи для отслеживания наведения на вашем собственном сайте? Поделитесь ими ниже!

Пост «Получите рецепт: отслеживание наведения в Диспетчере тегов Google» впервые появился на LunaMetrics.

—-

Отправлено через my feedly newsfeed

Как создать эффект наведения курсора на список ссылок

Среди многих вещей, которые нравятся в редизайне своего блога Верле, является то, как она выполняет эффекты наведения курсора для списков ссылок, например, тех, что в ее «одобренном» разделе.

Вместо того, чтобы заставлять других пробираться через CSS Верле (вау, это настоящая таблица стилей!), Я подумал, что было бы полезно показать, как создать этот эффект «наведения блока».

Эффект наведения ссылки в блоге Верле

Пример

Во-первых, просмотрите мой пример эффекта наведения ссылки и наведите курсор на элементы списка, чтобы увидеть эффект наведения блока в действии.

Код

HTML довольно прост. Поскольку IE поддерживает только элемент : hover для ссылок, привязка ссылки должна обходить весь текст в элементе списка.

Следовательно, нам нужно предоставить несколько дополнительных ловушек для стилизации контента. Мы делаем это с помощью тегов и .

  & lt; div & gt;
& lt; ul & gt;
& lt; li & gt; & lt; a title = "Text" href = "#" & gt; Первый заголовок ссылки
& lt; em & gt; Описание ссылки. & lt; / em & gt;
Дата публикации & lt; / a & gt; & lt; / li & gt;
& lt; li & gt; & lt; a title = "Text" href = "#" & gt; Первый заголовок ссылки
& lt; em & gt; Описание ссылки.& lt; / em & gt;
Дата публикации & lt; / a & gt; & lt; / li & gt;
& lt; / ul & gt;
& lt; / div & gt;  

А теперь CSS. Чтобы эффект наведения блока работал должным образом в IE, нам нужно сделать ширину ссылки такой же, как у элемента списка.

В противном случае эффект наведения будет отображаться только при наведении указателя мыши на текст внутри элемента списка.

 #links ul {
тип-стиль-список: нет;
ширина: 400 пикселей;
}
#links li {
граница: 1px с точками # 999;
ширина границы: 1px 0;
маржа: 5px 0;
}
#links li a {
цвет: # 9

; дисплей: блок; шрифт: полужирный, 120%, Arial, Helvetica, без засечек; отступ: 5 пикселей; текстовое оформление: нет; } * html #links li a {/ * заставить работать эффект наведения в IE * / ширина: 400 пикселей; } #links li a: hover { фон: #ffffcc; } #links a em { цвет: # 333; дисплей: блок; шрифт: обычный 85% Verdana, Helvetica, без засечек; высота строки: 125%; } #links a span { цвет: # 125F15; шрифт: обычный 70% Verdana, Helvetica, без засечек; высота строки: 150%; }

Это не обязательно самая семантическая разметка в мире, особенно с этими тегами , но я не знаю, как еще вы бы это сделали.Если кто-нибудь знает более семантический метод, дайте мне знать.

Дополнительная литература

A: hover

Начало работы

В конце прошлого урока вы узнали, что на самом деле существуют разные типы тегов «A» (A: ссылка, A: активный и A: посещенный). Ну, есть еще один, который называется A: hover. Вы знаете, как когда вы наводите указатель мыши на ссылку на этой странице, она становится курсивной, меняет цвет, а ваша мышь превращается в значок изменения размера? Это все благодаря тегу A: hover.И он может делать намного больше. Давайте углубимся. Эффекты, которые вы собираетесь изучить, основаны на последних 2 уроках, поэтому, если вы еще этого не сделали, вернитесь назад.

Как это работает

Эти очень классные эффекты действительно очень просты, но вы должны использовать таблицы стилей. По сути, вы определяете теги A: link, A: active и A :hibited одинаково, а тег A: hover - по-разному. Вот пример того, как это может выглядеть:

Можете ли вы предсказать, что произойдет? Идите вперед, скопируйте и вставьте код на свою страницу, наведите указатель мыши на ссылку и посмотрите, был ли ваш прогноз верным.Если вы все сделали правильно, вы должны были увидеть, как ваши ссылки становятся синими, подчеркнутыми и выделяются курсивом, когда вы наводите на них курсор. Чтобы узнать, что еще вы можете сделать, читайте дальше.

Бесконечные возможности

Перед тем, как продолжить, сделайте небольшое предостережение - этот раздел определенно попадет в категорию «просто потому, что вы можете это сделать, не означает, что вы должны». Некоторые эффекты, которые вы можете создать, заставляют другие объекты перемещаться по вашей странице. Это не хорошая вещь. Так что, если вы обычно используете шрифт 12 пикселей, а затем при наведении курсора мыши ваш шрифт меняется на шрифт 128 пикселей, все будет опущено и перемещено.

Цвет - это простая вещь, которую вы можете изменить, как цвет шрифта, так и цвет фона для текста. Вам просто нужно установить «color:» и «background-color:» для A: hover, отличные от других тегов «A». Изменение цвета может привести к тому, что слова будут выделены, затемнены и т. Д.

Подчеркнутый или любое другое оформление текста - это то, что вы можете легко включить / выключить, не оказывая отрицательного воздействия на остальную часть страницы.

Полужирный и курсив - это еще две вещи, которые вы можете сделать, настроив тег A: hover, но здесь вам нужно начать осторожно. По мере изменения размеров все начинает меняться на вашей странице

Вы можете изменить шрифт на что-то другое, но, опять же, некоторые шрифты могут отличаться по размеру от оригинала, что заставляет текст и изображения снова делать это злобное смещение.

И, наконец, вы можете изменить размер ссылки, когда наводите на нее курсор.Я думаю, вам стоит попробовать это хотя бы раз в жизни, просто чтобы посмотреть, что происходит на самом деле. Все, что вам нужно сделать, это отрегулировать «font-size:» для тега «A: hover» иначе, чем для остальных тегов «A».

Курсоры

Чтобы заставить курсор измениться, вы используете свойство "cursor:" в сочетании с тегом "A: hover". Чтобы увидеть различные варианты, которые вы можете использовать со свойством "cursor:", я собираюсь указать вам на веб-сайт HTML Goodies. У них есть действительно хорошая таблица на эту тему, и нет необходимости заново изобретать колесо.Просто прокрутите немного вниз, как только окажетесь там.

Практика

Для вашей практики попробуйте создать ссылку, которая меняет цвета текста и цвета фона (например, если это был черный текст на белом фоне, он должен переключиться на белый текст на черном фоне), выделяется курсивом, а курсор меняется на вопросительный знак.

Назад в СС T.O.C.

Привязка к таблицам стилей

.
Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *