Поменять курсор на руку, когда мышь перемещается по строке в таблице


201

Как изменить указатель курсора на руку , когда моя мышь идет больше <tr>в а<table>

<table class="sortable" border-style:>
  <tr>
    <th class="tname">Name</th><th class="tage">Age</th>
  </tr>
  <tr><td class="tname">Jennifer</td><td class="tage">24</td></tr>
  <tr><td class="tname">Kate</td><td class="tage">36</td></tr>
  <tr><td class="tname">David</td><td class="tage">25</td></tr>
  <tr><td class="tname">Mark</td><td class="tage">40</td></tr>
</table>

Для интерактивного фрагмента кода проверьте мой ответ
fmagno

Ответы:


350

Вы можете сделать это с помощью CSS на самом деле.

.sortable tr {
    cursor: pointer;
}

21
Это будет прекрасно работать без :hover. cursorопределяет, на что меняется курсор, когда ваша мышь находится над ним.
Джеймс Монтань

3
Есть ли шанс, что вы можете изменить этот ответ, чтобы удалить ненужные :hover? Вопрос все еще привлекает внимание спустя 2 года, и было бы хорошо, если бы принятый ответ не предлагал использовать :hoverбез необходимости. Я думаю, что это приводит к неправильному пониманию того, как cursorработает, и подразумевает, что :hoverэто необходимо для изменения курсора.
Джеймс Монтань

203

Я немного искал стили начальной загрузки и нашел это:

[role=button]{cursor:pointer}

Поэтому я предполагаю, что вы можете получить то, что вы хотите с:

<span role="button">hi</span>

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

@Hooli, по состоянию на 6-2018, эта публикация теперь является лучшим результатом при поиске «значка начальной загрузки с указателем при наведении курсора».
BrianHVB

1
@ OlivierBoissé Только что протестирован, и он определенно работает с BS 4
Гейб Химстра

1
Важно: не добавляйте, role="button"когда хотите добавить style="cursor:pointer;". Во-первых, ваш элемент зависит от того, какой CSS-код определен в другом месте (и не будет переопределен в другом месте), и, самое главное, вы неправильно используете roleатрибут просто потому, что большинству пользователей он не нужен. Обратите внимание, что большинство программ чтения с экрана позволяют перебирать [role=button]элементы, предоставляя пользователям с ограниченными возможностями доступа к Интернету возможность быстрого просмотра всех кнопок страницы. Не заставляйте их проходить через все строки таблицы, чтобы попасть в ссылки нижнего колонтитула!
дао

75

Самый простой способ, который я нашел, это добавить

style="cursor: pointer;"

на ваши теги.



17

Я добавил это в свой style.css для управления параметрами курсора:

.cursor-pointer{cursor: pointer;}
.cursor-croshair{cursor: crosshair;}
.cursor-eresize{cursor: e-resize;}
.cursor-move{cursor: move;}

1
не хорошо, если вы вводите опечатки по пути (см. «Перекрестие»)
наблюдатель

12

Для совместимости с IE <6 используйте этот стиль в следующем порядке:

.sortable:hover {
    cursor: pointer;
    cursor: hand;
}

Но помните, что IE <7 поддерживает :hoverпсевдокласс только с <a>элементом.


10

Используйте стиль cursor: pointer;в CSS для элемента, на котором вы хотите изменить курсор.

В вашем случае вы бы использовали (в вашем .css файле):

.sortable {
    cursor: pointer;
}

9

Используйте свойство курсора CSS следующим образом:

<table class="sortable">
  <tr>
    <th class="tname">Name</th><th class="tage">Age</th>
  </tr>
  <tr style="cursor: pointer;"><td class="tname">Jennifer</td><td class="tage">24</td></tr>
  <tr><td class="tname">Kate</td><td class="tage">36</td></tr>
  <tr><td class="tname">David</td><td class="tage">25</td></tr>
  <tr><td class="tname">Mark</td><td class="tage">40</td></tr>
</table>

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


4

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

table tr:hover{cursor:pointer;} /* For all tables*/
table.sortable tr:hover{cursor:pointer;} /* only for this one*/

3

только для стандарта работают вышеуказанные решения, но если вы используете datatables, вы должны переопределить настройки datatatables.css по умолчанию и добавить следующий код в пользовательский css. В приведенном ниже коде row-select - это класс, который я добавил в datatables как показано в HTML.

table.row-select.dataTable tbody td
{
cursor: pointer;    
}

И ваш HTML будет выглядеть так:

<table datatable="" dt-options="dtOptions1" dt-columns="dtColumns1" class="table table-striped table-bordered table-hover row-select"  id="datatable"></table>

Какое решение выше?
Kmeixner

2

Пример со встроенными стилями:

<table>
  <tr> <td style="cursor: pointer;">mouse me over: pointer</td> </tr>
  <tr> <td style="cursor: wait;">mouse me over: wait</td> </tr>
  <tr> <td style="cursor: zoom-in;">mouse me over: zoom-in</td> </tr>
</table>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.