I've got a list, and I have a click handler for its items:
<ul>
<li>foo</li>
<li>goo</li>
</ul>
How can I change the mouse pointer into a hand pointer (like when hovering over a button)? Right now the pointer turns into a text selection pointer when I hover over the list items.
cursor: grab
- anyone In light of the passage of time, as people have mentioned, you can now safely just use:
li { cursor: pointer; }
Answered 2023-09-20 20:33:12
cursor: pointer
is good enough for everything above IE 5.5: quirksmode.org/css/cursor.html - anyone pointer
this question is over 5 years old btw. - anyone cursor:pointer
still works. So if there ever was an excuse to use cursor:hand
, there no longer is. - anyone Use for li
:
li:hover {
cursor: pointer;
}
See more cursor properties with examples after running snippet option:
.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>
Answered 2023-09-20 20:33:12
You do not require jQuery for this, simply use the following CSS content:
li {cursor: pointer}
And voilà! Handy.
Answered 2023-09-20 20:33:12
Use:
li:hover {
cursor: pointer;
}
Other valid values (which hand
is not) for the current HTML specification can be viewed here.
Answered 2023-09-20 20:33:12
:hover
pseudo class is in this case. Is there any advantage for specifying a different cursor when the mouse does not hover the element? Also I read that li:hover
does not work in IE6. - anyone :hover
is just for specificity, @Robert. I can't test for support in any version of MSIE, sorry, but it wouldn't surprise me if it didn't work! :P - anyone hand
in the top answer, even though it is not working? - anyone cursor: hand
is deprecated and not in the css spec. it's like from ie5-6 era. use only pointer
. - anyone Use
cursor: pointer;
cursor: hand;
if you want to have a crossbrowser result!
Answered 2023-09-20 20:33:12
cursor: hand
is largely obsolete, now. Hasn't been around since IE 5.5. - anyone 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; }
You can also have the cursor be an image:
.img-cur {
cursor: url(images/cursor.png), auto;
}
Answered 2023-09-20 20:33:12
I think it would be smart to only show the hand/pointer cursor when JavaScript is available. So people will not have the feeling they can click on something that is not clickable.
To achieve that you could use the JavaScript libary jQuery to add the CSS to the element like so
$("li").css({"cursor":"pointer"});
Or chain it directly to the click handler.
Or when modernizer in combination with <html class="no-js">
is used, the CSS would look like this:
.js li { cursor: pointer; }
Answered 2023-09-20 20:33:12
Just for completeness:
cursor: -webkit-grab;
It also gives a hand, the one you know when moving the view of an image around.
It is quite useful if you want to emulate grab behavior using jQuery and mousedown.
Answered 2023-09-20 20:33:12
You can change it either on hover or just specify cursor:pointer
on list item, both will work.
ul li {
cursor: pointer;
}
Alternatively
ul li:hover {
cursor: pointer;
}
Answered 2023-09-20 20:33:12
For being able to make anything get the "mousechange" treatment, you can add a CSS class:
.mousechange:hover {
cursor: pointer;
}
<span class="mousechange">Some text here</span>
I would not say to use cursor:hand
since it was only valid for Internet Explorer 5.5 and below, and Internet Explorer 6 came with Windows XP (2002). People will only get the hint to upgrade when their browser stops working for them. Additionally, in Visual Studio, it will red underline that entry. It tells me:
Validation (CSS 3.0): "hand" is not a valid value for the "cursor" property
Answered 2023-09-20 20:33:12
Simply just do something like this:
li {
cursor: pointer;
}
I apply it on your code to see how it works:
li {
cursor: pointer;
}
<ul>
<li>foo</li>
<li>goo</li>
</ul>
Note: Also DO not forget you can have any hand cursor with customised cursor, you can create fav hand icon like this one for example:
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>
Answered 2023-09-20 20:33:12
All of the other responses suggest using the standard CSS pointer, however, there are two methods:
Apply the CSS property cursor:pointer;
to the elements. (This is the default style when a cursor hovers over a button.)
Apply the CSS property cursor:url(pointer.png);
using a custom graphic for your pointer. This may be more desirable if you want to ensure that the user experience is identical on all platforms (instead of allowing the browser/OS decide what your pointer cursor should look like). Note that fallback options may be added in case the image is not found, including secondary urls or any of the other options i.e. cursor:url(pointer.png,fallback.png,pointer);
Of course these may be applied to the list items in this manner li{cursor:pointer;}
, as a class .class{cursor:pointer;}
, or as a value for the style attribute of each element style="cursor:pointer;"
.
Answered 2023-09-20 20:33:12
Answered 2023-09-20 20:33:12
You can use one of the following:
li:hover
{
cursor: pointer;
}
or
li
{
cursor: pointer;
}
Working example 1:
li:hover
{
cursor: pointer;
}
<ul>
<li>foo</li>
<li>bar</li>
</ul>
Working example 2:
li
{
cursor: pointer;
}
<ul>
<li>foo</li>
<li>bar</li>
</ul>
Answered 2023-09-20 20:33:12
For a basic hand symbol:
Try
cursor: pointer
If you want a hand symbol like drag some item and drop it, try:
cursor: grab
Answered 2023-09-20 20:33:12
Check the following. I get it from W3Schools.
.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; }
<!DOCTYPE html>
<html>
<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>
Answered 2023-09-20 20:33:12
Note: this is not recommended as it is considered bad practice
Wrapping the content in an anchor tag containing an href
attribute will work without explicitly applying the cursor: pointer;
property with the side effect of anchor properties (amended with CSS):
<a href="#" style="text-decoration: initial; color: initial;"><div>This is bad practice, but it works.</div></a>
Answered 2023-09-20 20:33:12
/* 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;
/* 2 URLs and coordinates, with a keyword fallback */
cursor: url(one.svg) 2 2, url(two.svg) 5 5, progress;
Note: cursor support for many format icons!
such as .cur, .png, .svg, .jpeg, .webp
, and so on
li:hover{
cursor: url("https://cdn.xgqfrms.xyz/cursor/mouse.cur"), pointer;
color: #0f0;
background: #000;
}
/*
li:hover{
cursor: url("../icons/hand.cur"), pointer;
}
*/
li{
height: 30px;
width: 100px;
background: #ccc;
color: #fff;
margin: 10px;
text-align: center;
list-style: none;
}
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
Answered 2023-09-20 20:33:12
<style>
.para{
color: black;
}
.para:hover{
cursor: pointer;
color: blue;
}
</style>
<div class="para">
In the above HTML code [:hover] is used to indicate that the following style must be applied only on hovering or keeping the mouse cursor on it.
There are several types of cursors available in CSS:
View the below code for types of cursor:
<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>
Click the below link for viewing how the cursor property acts:
https://www.w3schools.com/cssref/tryit.asp?filename=trycss_cursor
Answered 2023-09-20 20:33:12