Зробіть курсор рукою, коли користувач наводить курсор на елемент списку


1957

У мене є список, і у мене є обробник кліків для його елементів:

<ul>
  <li>foo</li>
  <li>goo</li>
</ul>

Як я можу змінити вказівник миші на вказівник руки (наприклад, при наведенні на кнопку)? Зараз вказівник перетворюється на покажчик вибору тексту, коли я наведіть курсор на елементи списку.


52
FYI, я переназначив ваше запитання, видаливши "jquery" і додавши "css", щоб більш точно відобразити характер вашого запитання та відповідь на нього.
Крістофер Паркер

4
Хороший довідковий список для зміни курсору на руку та інших значків, доступних у css. javascriptkit.com/dhtmltutors/csscursors.shtml
Ніл

3
Якщо є обробник клацань, який додається з JavaScript, також з JavaScript слід додати css для вказівника миші. Таким чином, користувач не думає, що він може натиснути туди, де це неможливо. Я додав для цього відповідну відповідь .
Крістоф

Ви спробувалиcursor: grab
devssh

Відповіді:


3251

Зважаючи на те, що пройшов час, як вже згадували люди, тепер можна сміливо просто використовувати:

li { cursor: pointer; }

212
Варто відзначити, що просто робити cursor: pointerдосить добре для всього вище IE 5.5: quirksmode.org/css/cursor.html
ripper234

19
Смішно, як вказівник! = Курсор і рука! = Вказівник, ще більше додаючи плутанині. :)
Генрік Ерландссон

22
Зауважимо, quirksmode.org/css/user-interface/cursor.html#note (на який згадувалось у попередньому коментарі) зазначає, що рука повинна прийти після вказівника. Я рекомендую використовувати лише покажчик - IE 5.5 мертвіший, ніж IE 6.
Iiridayn

2
@EdwardBlack це було потрібно для непарних браузерів, які не відповідали стандартам, відповідь було оновлено давно, щоб відобразити новий спосіб, просто тому, що pointerце питання становить понад 5 років.
Арен

Справді. Навіть якщо ви запускаєте IE в режимі сумісності IE5, він cursor:pointerвсе одно працює. Тож якщо коли-небудь було виправдання для використання cursor:hand, його більше немає.
Містер Лістер

335

Використовувати для li:

li:hover {
    cursor: pointer;
}

Перегляньте інші властивості курсору з прикладами після запуску опції фрагмента:

Анімація, що показує курсор, що наводить курсор над дівом кожного класу

.auto          { cursor: auto; }
.default       { cursor: default; }
.none          { cursor: none; }
.context-menu  { cursor: context-menu; }
.help          { cursor: help; }
.pointer       { cursor: pointer; }
.progress      { cursor: progress; }
.wait          { cursor: wait; }
.cell          { cursor: cell; }
.crosshair     { cursor: crosshair; }
.text          { cursor: text; }
.vertical-text { cursor: vertical-text; }
.alias         { cursor: alias; }
.copy          { cursor: copy; }
.move          { cursor: move; }
.no-drop       { cursor: no-drop; }
.not-allowed   { cursor: not-allowed; }
.all-scroll    { cursor: all-scroll; }
.col-resize    { cursor: col-resize; }
.row-resize    { cursor: row-resize; }
.n-resize      { cursor: n-resize; }
.e-resize      { cursor: e-resize; }
.s-resize      { cursor: s-resize; }
.w-resize      { cursor: w-resize; }
.ns-resize     { cursor: ns-resize; }
.ew-resize     { cursor: ew-resize; }
.ne-resize     { cursor: ne-resize; }
.nw-resize     { cursor: nw-resize; }
.se-resize     { cursor: se-resize; }
.sw-resize     { cursor: sw-resize; }
.nesw-resize   { cursor: nesw-resize; }
.nwse-resize   { cursor: nwse-resize; }

.cursors > div {
    float: left;
    box-sizing: border-box;
    background: #f2f2f2;
    border:1px solid #ccc;
    width: 20%;
    padding: 10px 2px;
    text-align: center;
    white-space: nowrap;
    &:nth-child(even) {
       background: #eee;
    }
    &:hover {
       opacity: 0.25
    }
}
<h1>Example of cursor</h1>

<div class="cursors">
    <div class="auto">auto</div>
    <div class="default">default</div>
    <div class="none">none</div>
    <div class="context-menu">context-menu</div>
    <div class="help">help</div>
    <div class="pointer">pointer</div>
    <div class="progress">progress</div>
    <div class="wait">wait</div>
    <div class="cell">cell</div>
    <div class="crosshair">crosshair</div>
    <div class="text">text</div>
    <div class="vertical-text">vertical-text</div>
    <div class="alias">alias</div>
    <div class="copy">copy</div>
    <div class="move">move</div>
    <div class="no-drop">no-drop</div>
    <div class="not-allowed">not-allowed</div>
    <div class="all-scroll">all-scroll</div>
    <div class="col-resize">col-resize</div>
    <div class="row-resize">row-resize</div>
    <div class="n-resize">n-resize</div>
    <div class="s-resize">s-resize</div>
    <div class="e-resize">e-resize</div>
    <div class="w-resize">w-resize</div>
    <div class="ns-resize">ns-resize</div>
    <div class="ew-resize">ew-resize</div>
    <div class="ne-resize">ne-resize</div>
    <div class="nw-resize">nw-resize</div>
    <div class="se-resize">se-resize</div>
    <div class="sw-resize">sw-resize</div>
    <div class="nesw-resize">nesw-resize</div>
    <div class="nwse-resize">nwse-resize</div>
</div>


Off topic, Використовуючи яке програмне забезпечення ви робили цю анімаційну графіку? Чекаю .. @ Santosh Khalse
fWd82

3
@ fWd82 перевірити ShareX - записати gif
Прихований

Я вважав, що це корисне нагадування про курсори, і додав код як інструмент. Ось посилання на код вище: spragucm.com/web-css-cursor-pointers
Chris Sprague

1
Дивовижна анімація! @ fWd82 - Peek також добре підходить для запису gif-ділянок екрану. github.com/phw/peek
Осінь Леонарда

1
га - це дивовижно! дякую @ santosh-khalse
sufinawaz

156

Для цього вам не потрібен jQuery, просто використовуйте такий вміст CSS:

li {cursor: pointer}

І вуаля! Зручно.


1
Зручно? Хм ... я бачу, що ти там робив, @ denis-alpheus-cahuk
osiris

78

Використання:

li:hover {
    cursor: pointer;
}

Інші допустимі значення (які handє НЕ ) для поточної специфікації HTML можна подивитися тут .


13
Я не розумію, в чому :hoverполягає використання псевдокласу. Чи є якісь - які переваги для вказівки іншого курсору , коли миша ніяк НЕ парити елемент? Також я читав, що li:hoverне працює в IE6.
Роберт

1
Я припускаю :hover, що тільки для конкретності, @Robert. Я не можу перевірити підтримку в будь-якій версії MSIE, вибачте, але це не здивувало б мене, якби це не працювало! : P
Alastair

чому відповідь handу верхній частині, хоча це не працює?
Чорний

1
@EdwardBlack cursor: handзастарілий і не міститься в специфікації css. це як з епохи ie5-6 використовувати тільки pointer.
північний американський

43

Використовуйте

cursor: pointer;
cursor: hand;

якщо ви хочете отримати результат крос-броусера!


7
Це 2018 рік, і курсор: рука більше не потрібна для розробки крос-браузерів, правда?
Харамоз

41

CSS:

.auto            { cursor: auto; }
.default         { cursor: default; }
.none            { cursor: none; }
.context-menu    { cursor: context-menu; }
.help            { cursor: help; }
.pointer         { cursor: pointer; }
.progress        { cursor: progress; }
.wait            { cursor: wait; }
.cell            { cursor: cell; }
.crosshair       { cursor: crosshair; }
.text            { cursor: text; }
.vertical-text   { cursor: vertical-text; }
.alias           { cursor: alias; }
.copy            { cursor: copy; }
.move            { cursor: move; }
.no-drop         { cursor: no-drop; }
.not-allowed     { cursor: not-allowed; }
.all-scroll      { cursor: all-scroll; }
.col-resize      { cursor: col-resize; }
.row-resize      { cursor: row-resize; }
.n-resize        { cursor: n-resize; }
.e-resize        { cursor: e-resize; }
.s-resize        { cursor: s-resize; }
.w-resize        { cursor: w-resize; }
.ns-resize       { cursor: ns-resize; }
.ew-resize       { cursor: ew-resize; }
.ne-resize       { cursor: ne-resize; }
.nw-resize       { cursor: nw-resize; }
.se-resize       { cursor: se-resize; }
.sw-resize       { cursor: sw-resize; }
.nesw-resize     { cursor: nesw-resize; }
.nwse-resize     { cursor: nwse-resize; }

Ви також можете мати курсор зображення:

.img-cur {
   cursor: url(images/cursor.png), auto;
}

7
Це не відповідь на запитання.

9
це може бути не прямою відповіддю на питання, але це дуже хороший настанов. дякую до речі!
читчаронко

20

Я думаю, було б розумно показувати курсор руки / вказівника лише тоді, коли JavaScript доступний. Таким чином, у людей не буде відчуття, що вони можуть натиснути на те, що не можна натискати.

Щоб досягти цього, ви можете використовувати JavaScript libary jQuery, щоб додати CSS до такого елемента

$("li").css({"cursor":"pointer"});

Або пов'язати його безпосередньо з обробником кліків.

Або коли використовується модернізатор у поєднанні з <html class="no-js">, CSS виглядатиме так:

.js li { cursor: pointer; }



16

Для повного перехресного веб-переглядача використовуйте:

cursor: pointer;
cursor: hand;

12

Просто зробіть щось подібне:

li { 
  cursor: pointer;
}

Я застосовую його до вашого коду, щоб побачити, як він працює:

li {
  cursor: pointer;
}
<ul>
  <li>foo</li>
  <li>goo</li>
</ul>

Примітка. Крім того, не забувайте, що ви можете мати будь-який курсор руки з налаштованим курсором, ви можете створити піктограму ручної роботи, як ця, наприклад:

div {
  display: block;
  width: 400px;
  height: 400px;
  background: red;
  cursor: url(http://findicons.com/files/icons/1840/free_style/128/hand.png) 4 12, auto;
}
<div>
</div>


11

Для того, щоб мати змогу зробити що-небудь, отримати обробку «зміни миші», ви можете додати клас CSS:

.mousechange:hover {
  cursor: pointer;
}
<span class="mousechange">Some text here</span>

Я б не сказав використовувати cursor:handйого, оскільки він був дійсним лише для Internet Explorer 5.5 і нижче, а Internet Explorer 6 постачався з Windows XP (2002). Люди отримають натяк на оновлення лише тоді, коли їх браузер перестане працювати на них. Крім того, у Visual Studio воно червоним підкреслить цей запис. Це говорить мені:

Валідація (CSS 3.0): "рука" не є дійсним значенням для властивості "курсор"



9

Усі інші відповіді пропонують використовувати стандартний покажчик CSS, однак існують два методи:

  1. Застосуйте cursor:pointer;до елементів властивість CSS . (Це стиль за замовчуванням, коли курсор наводить на кнопку.)

  2. Застосуйте властивість CSS cursor:url(pointer.png);за допомогою спеціальної графіки для вашого вказівника. Це може бути більш бажано, якщо ви хочете переконатися, що користувацький досвід однаковий на всіх платформах (замість того, щоб браузер / ОС вирішували, як повинен виглядати ваш курсор вказівника). Зауважте, що резервні параметри можуть бути додані у випадку, якщо зображення не знайдено, включаючи вторинні URL-адреси або будь-який з інших параметрів, тобтоcursor:url(pointer.png,fallback.png,pointer);

Звичайно, вони можуть бути застосовані до елементів списку таким чином li{cursor:pointer;}, як клас .class{cursor:pointer;}або як значення для атрибуту стилю кожного елемента style="cursor:pointer;".



5

Ви можете скористатися одним із наступних:

li:hover
{
 cursor: pointer;
}

або

li
{
 cursor: pointer;
}

Робочий приклад 1:

    li:hover
    {
     cursor: pointer;
    }
<ul>
  <li>foo</li>
  <li>bar</li>
</ul>

Робочий приклад 2:

    li
    {
     cursor: pointer;
    }
<ul>
  <li>foo</li>
  <li>bar</li>
</ul>



3

Основний символ руки:

Спробуйте

cursor: pointer 

Якщо ви хочете, щоб символ руки, як перетягніть який-небудь предмет і кинув його, спробуйте:

cursor: grab


2

Використання HTML Hack

Примітка: це не рекомендується, оскільки це вважається поганою практикою

Обгортання вмісту в тег прив’язки, що містить hrefатрибут, буде працювати без явного застосування cursor: pointer;властивості з побічним ефектом властивостей якоря (доповнено CSS):

<a href="#" style="text-decoration: initial; color: initial;"><div>This is bad practice, but it works.</div></a>


1
Це не працює. Якірні теги мають лише курсор вказівника з підкресленням та іншим кольором, якщо вони мають href.
Artyer

1
"Як я можу зробити курсор рукою, коли користувач наводить курсор на елемент списку?" - Що стосується цього конкретного питання, це так. Але, як вказував @sandrooco, це не дуже добра практика.
Rohit Nair

1

Перевірте наступне. Я отримую це від W3Schools .

<!DOCTYPE html>
<html>
    <head>
        <style>
        .alias {cursor: alias;}
        .all-scroll {cursor: all-scroll;}
        .auto {cursor: auto;}
        .cell {cursor: cell;}
        .context-menu {cursor: context-menu;}
        .col-resize {cursor: col-resize;}
        .copy {cursor: copy;}
        .crosshair {cursor: crosshair;}
        .default {cursor: default;}
        .e-resize {cursor: e-resize;}
        .ew-resize {cursor: ew-resize;}
        .grab {cursor: -webkit-grab; cursor: grab;}
        .grabbing {cursor: -webkit-grabbing; cursor: grabbing;}
        .help {cursor: help;}
        .move {cursor: move;}
        .n-resize {cursor: n-resize;}
        .ne-resize {cursor: ne-resize;}
        .nesw-resize {cursor: nesw-resize;}
        .ns-resize {cursor: ns-resize;}
        .nw-resize {cursor: nw-resize;}
        .nwse-resize {cursor: nwse-resize;}
        .no-drop {cursor: no-drop;}
        .none {cursor: none;}
        .not-allowed {cursor: not-allowed;}
        .pointer {cursor: pointer;}
        .progress {cursor: progress;}
        .row-resize {cursor: row-resize;}
        .s-resize {cursor: s-resize;}
        .se-resize {cursor: se-resize;}
        .sw-resize {cursor: sw-resize;}
        .text {cursor: text;}
        .url {cursor: url(myBall.cur),auto;}
        .w-resize {cursor: w-resize;}
        .wait {cursor: wait;}
        .zoom-in {cursor: zoom-in;}
        .zoom-out {cursor: zoom-out;}
        </style>
    </head>

    <body>
        <h1>The cursor property</h1>
        <p>Mouse over the words to change the mouse cursor.</p>

        <p class="alias">alias</p>
        <p class="all-scroll">all-scroll</p>
        <p class="auto">auto</p>
        <p class="cell">cell</p>
        <p class="context-menu">context-menu</p>
        <p class="col-resize">col-resize</p>
        <p class="copy">copy</p>
        <p class="crosshair">crosshair</p>
        <p class="default">default</p>
        <p class="e-resize">e-resize</p>
        <p class="ew-resize">ew-resize</p>
        <p class="grab">grab</p>
        <p class="grabbing">grabbing</p>
        <p class="help">help</p>
        <p class="move">move</p>
        <p class="n-resize">n-resize</p>
        <p class="ne-resize">ne-resize</p>
        <p class="nesw-resize">nesw-resize</p>
        <p class="ns-resize">ns-resize</p>
        <p class="nw-resize">nw-resize</p>
        <p class="nwse-resize">nwse-resize</p>
        <p class="no-drop">no-drop</p>
        <p class="none">none</p>
        <p class="not-allowed">not-allowed</p>
        <p class="pointer">pointer</p>
        <p class="progress">progress</p>
        <p class="row-resize">row-resize</p>
        <p class="s-resize">s-resize</p>
        <p class="se-resize">se-resize</p>
        <p class="sw-resize">sw-resize</p>
        <p class="text">text</p>
        <p class="url">url</p>
        <p class="w-resize">w-resize</p>
        <p class="wait">wait</p>
        <p class="zoom-in">zoom-in</p>
        <p class="zoom-out">zoom-out</p>
    </body>
</html>

0

просто за допомогою CSS для налаштування вказівника курсору

https://developer.mozilla.org/en-US/docs/Web/CSS/cursor


/* Keyword value */
cursor: pointer;
cursor: auto;

/* URL, with a keyword fallback */
cursor: url(hand.cur), pointer;

/* URL and coordinates, with a keyword fallback */
cursor: url(cursor1.png) 4 12, auto;
cursor: url(cursor2.png) 2 2, pointer;

/* Global values */
cursor: inherit;
cursor: initial;
cursor: unset;

демонстрація

<ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
</ul>

зображення hand.cur

li:hover{
   cursor: url("../icons/hand.cur"), pointer;
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.