Как сделать ссылку неактивной в html
Перейти к содержимому

Как сделать ссылку неактивной в html

  • автор:

Сделать ссылку неактивной с помощью CSS: подробное решение

Свойство pointer-events: none; выключает взаимодействие с ссылкой, а cursor: default; заменяет курсор на стандартный курсор-стрелку, чтобы показать, что ссылка неактивна.

Разбираемся в изменении стилей ссылок

Проработка внешнего вида

Чтобы полностью удалить все признаки активности ссылки, добавьте стили:

Скопировать код

a.no-click < color: currentColor; /* Цвет текста соответствует основному */ text-decoration: none; /* Без подчёркивания */ >

Использование наложения: защита слоями

Без использования JavaScript вы можете перекрыть ссылку другим элементом с более высоким значением z-index :

Скопировать код
Скопировать код

.link-overlay < position: relative; z-index: 1; >.underneath-link

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

Юзабилити: не конфузим пользователя

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

Код для динамики контента и сложных случаев

Задача сохранения неактивности

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

Когда CSS взаимодействует с JavaScript

Несмотря на то что фокус данной статьи — CSS, напомним, что JavaScript или jQuery позволяют управлять взаимодействием со ссылками гораздо гибче:

Сделать ссылку неактивной с помощью CSS: подробное решение

Свойство pointer-events: none; выключает взаимодействие с ссылкой, а cursor: default; заменяет курсор на стандартный курсор-стрелку, чтобы показать, что ссылка неактивна.

Разбираемся в изменении стилей ссылок

Проработка внешнего вида

Чтобы полностью удалить все признаки активности ссылки, добавьте стили:

Скопировать код

a.no-click < color: currentColor; /* Цвет текста соответствует основному */ text-decoration: none; /* Без подчёркивания */ >

Использование наложения: защита слоями

Без использования JavaScript вы можете перекрыть ссылку другим элементом с более высоким значением z-index :

Скопировать код
Скопировать код

.link-overlay < position: relative; z-index: 1; >.underneath-link

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

Юзабилити: не конфузим пользователя

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

Код для динамики контента и сложных случаев

Задача сохранения неактивности

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

Когда CSS взаимодействует с JavaScript

Несмотря на то что фокус данной статьи — CSS, напомним, что JavaScript или jQuery позволяют управлять взаимодействием со ссылками гораздо гибче:

Как сделать ссылку неактивной после нажатия?

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

Подскажите как это сделать?
Отслеживать
6,488 6 6 золотых знаков 24 24 серебряных знака 31 31 бронзовый знак
задан 19 окт 2016 в 16:09
71 1 1 серебряный знак 5 5 бронзовых знаков

e.preventdefault() есть такая штука которая делает ссылку кликабельной, но не активной, или через сss pointer-events: none;/* делаем ссылку некликабельной */

19 окт 2016 в 16:11

Если я правильно вас понял, вам нужно задать оформление для ссылок псевдокласса :visited — htmlbook.ru/css/visited

Стиль для активной ссылки

Есть табы на чистом CSS, но как сделать чтоб первая ссылка была активной, имела собственный стиль, и при перекликованнии табов, ссылки тоже сватали активные. Пробую с :active , :focus но данный метод работает только во время нажатия на таб. С использованием Js это, конечно, легко сделать, но можно ли без JS?

.target:not(:target), :target ~ .target.default-target < display: none; >.target:target, .target.default-target < display: block; >a:active, a:focus
  • Блок 1
  • Блок 2
  • Блок 3
  • Блок 4

Отслеживать
7,157 4 4 золотых знака 29 29 серебряных знаков 56 56 бронзовых знаков
задан 8 янв 2017 в 18:16
845 1 1 золотой знак 8 8 серебряных знаков 27 27 бронзовых знаков
Вы знаете я недавно тщательно исследовал, я не увидел красивое, чистое решение на CSS.
8 янв 2017 в 19:34

прав @VadimOvchinnikov, вот тут есть примеры табов, некоторые становятся активными: css-tricks.com/examples/CSSTabs но честно говоря для динамической вёрстки они не подойдут, да и выглядят некрасиво в плане реализации

8 янв 2017 в 19:37

Еще думал место ссылок использовать input type radio + label + :checked, но данный подход тоже не красивый , так что пару строк js все таки придется использовать.

8 янв 2017 в 19:52
@Shperung, input type radio + label + :checked — не нужна не единая строка js
8 янв 2017 в 20:49

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

/* Очищаем форматирование общего блока, чтоб float не вилял на размещенные элементы после табов */ #tabs::after < display: block; content: ""; clear: both; >/* Предотвращаем прокрутку к tab-content при нажатии на ссылку */ .tab-switch < position: fixed; >.tab-link < display: inline-block; >/* Блок с содержимым изначально сокрытый и имеет параметр float:right для смещения под .tab-link. Если убрать float или заменить его на flex, .tab-link будет смещаться при переключении. Тут же указано наследование стиля при нажатии на ссылку, чтоб спрятать изначально активный блок. Если класс .active разместить в начале кода, то при нажатии на ссылку не будет срабатывать наследование между родственными селекторами, так как ссылка в коде будет после данного блока. */ .tab-content, .tab-switch:target ~ .tab-content.active < box-sizing: border-box; float: right; display: none; width: 100%; >/* Включаем сокрытый блок используя target и id прописанный в href */ .tab-switch:target + .tab-link + .tab-content, .tab-content.active < display: block; >#tabs < font-size: 0; >/* Описание стиля кнопок переключения табов и аналогичная работа с оформлением этих кнопок как в переключение скрытых блоков */ .tab-link, :target ~ .tab-link.active < margin-left: 0; margin-top: 10px; padding: 10px; background: transparent; text-decoration: none; font-size: 18px; color: #333; >.tab-link:hover < background-color: white; color: black; >.tab-switch:target + .tab-link, .tab-link.active < background-color: #eee; color: black; >/* Это просто внешний вид */ .tab-content < background-color: #eee; padding: 5px 15px; font-size: 13px; >.tab-content p < line-height: 1.65; >.tab-content ul, .tab-content ol < padding: 0 0 0 15px; margin: 0; line-height: 1.25; >.tab-content ul > li, .tab-content ol > li
  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
  • Vestibulum auctor dapibus neque.

Код красивый. Принцип тот же. Оформление допилите. Единственный минус — активный блок может быть только в конце из-за наследования класса к которому привязка идет для сокрытия начального блока. Можете попробовать поиграться с float-ом или со структурой в целом, думаю этот момент можно добить.

Для понимания основных принципов потребуется почитать про:

  • Соседние селекторы
  • Родственные селекторы
  • Псевдокласс :target
  • Другие стили

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

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