Cambie el cursor a la mano cuando el mouse pase sobre una fila en la tabla


201

¿Cómo cambio el puntero del cursor a mano cuando mi mouse pasa sobre <tr>un<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>

Para un fragmento de código interactivo, verifique mi respuesta
fmagno

Respuestas:


350

Puedes hacer esto con CSS en realidad.

.sortable tr {
    cursor: pointer;
}

21
Esto funcionará perfectamente bien sin el :hover. cursordefine a qué cambia el cursor cuando el mouse está sobre él.
James Montagne

3
¿Hay alguna posibilidad de que pueda modificar esta respuesta para eliminar lo innecesario :hover? La pregunta aún recibe atención 2 años después y sería bueno si la respuesta aceptada no sugiriera usarla :hoverinnecesariamente. Creo que conduce a un malentendido de cómo cursorfunciona e implica que :hoverse necesita para cambiar el cursor.
James Montagne

203

He buscado un poco los estilos de arranque y he encontrado esto:

[role=button]{cursor:pointer}

Así que supongo que puedes obtener lo que quieres con:

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

Fue agradable para los aficionados al bootstrap, pero la pregunta no involucra ningún marco frontal, por lo que no entiendo por qué esta respuesta es relevante con la pregunta (incluso si la respuesta es excelente)
Greco Jonathan

@Hooli a partir del 6-2018, esta publicación es ahora el mejor resultado cuando se busca "icono de cambio de arranque para puntero al pasar el mouse".
BrianHVB

1
@ OlivierBoissé Acabo de probar y definitivamente funciona con BS 4
Gabe Hiemstra

1
Importante: No agregue role="button"cuando quiera agregar style="cursor:pointer;". En primer lugar, su elemento depende de que ese CSS se defina en otro lugar (y no se anule en otro lugar) y, lo más importante, está haciendo un mal uso del roleatributo , simplemente porque la mayoría de los usuarios no lo necesitan. Tenga en cuenta que la mayoría de los lectores de pantalla permiten iterar a través de [role=button]elementos que brindan a los usuarios con accesibilidad web la capacidad de acceder rápidamente a todos los botones de página. ¡No haga que tengan que pasar por cada una de las filas de la tabla para llegar a los enlaces de pie de página!
tao

75

La forma más fácil que he encontrado es agregar

style="cursor: pointer;"

a tus etiquetas.



17

Agregué esto a mi style.css para administrar las opciones del cursor:

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

1
no es bueno si introduce errores tipográficos en el camino (ver "croshair")
observador

12

Para compatibilidad con IE <6, use este estilo en ese orden:

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

Pero recuerde que IE <7 :hoversolo admite pseudoclases con <a>element.


10

Use el estilo cursor: pointer;en el CSS para el elemento sobre el que desea que cambie el cursor.

En su caso, usaría (en su archivo .css):

.sortable {
    cursor: pointer;
}

9

Use la propiedad del cursor CSS de esta manera:

<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>

Por supuesto, debe poner el estilo en su archivo CSS y aplicarlo a la clase.


4

Usando CSS

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

3

solo para un estándar, las soluciones anteriores funcionan, pero si está usando tablas de datos, debe anular la configuración predeterminada de datatatables.css y agregar el siguiente código a css personalizado. En el código a continuación, select-row es la clase que agregué en las tablas de datos como se muestra en el html.

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

Y tu html se verá a continuación:

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

¿Qué solución anterior?
Kmeixner

2

Ejemplo con estilos en línea:

<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>

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.