Курсоры на компьютере: какие бывают, как менять, что нужно знать
easy

Курсоры на компьютере: какие бывают, как менять, что нужно знать

Пособие для тех, кто будет делать программы для компьютера и веба

Если вы работаете за компьютером с мышкой и клавиатурой, у вас на экране есть курсор или указатель мыши. Обычно он выглядит как белая или чёрная стрелка. У операционной системы есть несколько видов указателей, которые она меняет по ситуации. А ещё есть способы поменять его принудительно, если у вас стоит такая задача. Сейчас всё это разберём. 

Обычный указатель

Основной указатель — это стрелка. Он используется во всех случаях, кроме специально определённых. Но стрелка не так проста, как кажется.

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

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

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

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

.something{cursor: alias} — «сейчас я буду создавать ярлык»

.something{cursor: copy} — «я сейчас сюда скопирую»

.something{cursor: progress} — «я чем-то занят, но ты пока можешь позаниматься своими делами тоже»

.something{cursor: context-menu} — «нажатие на меня вызовет контекстное меню»

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

Курсоры на компьютере: какие бывают, как менять, что нужно знать
Курсоры на компьютере: какие бывают, как менять, что нужно знать
Обычный указатель мыши в Windows
Курсоры на компьютере: какие бывают, как менять, что нужно знать
А это курсоры одного из дистрибутива в Linux

Текстовый курсор

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

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

<div contenteditable class="something">Введите здесь свой текст</div>

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

.something{cursor: text}
<div id="unusual_input" class="something" style="cursor: text">Введите здесь свой текст</div>

Если вы повернули текстовое поле на 90º и хотите, чтобы пользователь вписал текст по вертикали, для вас придуман перевёрнутый текстовый курсор:

.something{cursor: vertical-text}

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

Рука с пальцем и без

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

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

cursor: pointer

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

cursor: grab — «готов схватить»

cursor: grabbing — «схватил и тащу»

cursor: no-drop — «сюда перетащить нельзя»

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

Ожидание

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

А ещё это единственный анимированный курсор в стандартном наборе. Смысл анимации в том, чтобы показать, что компьютер не завис окончательно, а просто чем-то очень занят.

Если вам нужно показать то же самое на веб-странице (например, показать, что запрос отправлен на сервер и мы ждём ответ), то используйте такие стили: 

cursor: wait — система занята;

cursor: progress — система занята, но вы можете заниматься своими делами.

Курсоры на компьютере: какие бывают, как менять, что нужно знать
Курсоры на компьютере: какие бывают, как менять, что нужно знать

Запрет действия

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

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

cursor: not-allowed

Курсоры на компьютере: какие бывают, как менять, что нужно знать
Курсоры на компьютере: какие бывают, как менять, что нужно знать

Курсоры для работы с таблицами и другими прямоугольниками

Чтобы помочь воинам «Экселя», разработали целую гору курсоров, которые рассказывают пользователю, что сейчас будут что-то делать с его ячейками и строками. В частности: 

cursor: col-resize — можно изменять ширину столбцы;

cursor: row-resize — можно изменять высоту строки;

cursor: cell — под указателем находится ячейка данных, можно в неё зайти и что-то сделать.

Также есть батарей указателей-стрелок, которые говорят, что текущий объект можно изменить в размерах в заданном направлении. Направления указываются как стороны света — север, юг, запад, восток, то есть n, s, e, w; а также комбинации типа nw, ew, ne, ns и т. д. Примеры: 

cursor: n-resize — эту штуку можно увеличить вверх ↑ (то есть на север); 

cursor: ns-resize — эту штуку можно увеличить вверх и вниз (то есть и на север, и на юг);

cursor: nwse-resize — эту штуку можно ресайзить по диагонали «слева сверху — справа снизу» ⤡

и далее во всех комбинациях

Курсоры на компьютере: какие бывают, как менять, что нужно знать

Курсоры для дизайнеров

Есть даже пара указателей, которые чаще всего используются в графических программах: 

cursor: crosshair — крестик для точного выделения пикселей; 

cursor: zoom-in — зазумиться, увеличить картинку;

cursor: zoom-out — уменьшить картинку.

Курсоры на компьютере: какие бывают, как менять, что нужно знать

Техника безопасности

Не меняйте курсоры просто так для красоты: ни в операционной системе, ни особенно в вебе. В нулевых было поветрие, что веб-мастера заменяли указатели на сайте на какие-то свои картинки. Хорошо, что это время прошло. 

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

Если вам просто скучно и хочется сделать на сайте что-то эдакое — лучше запустите там снег

Корректор:

Ира Михеева

Художник:

Алексей Сухов

Вёрстка:

Кирилл Климентьев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy