I don't think that there is a difference between the span
cursor and the div
cursor, at least there isn't for me in safari and I would assume other browsers are the same.
The div
and span
tags are both generic containers (see MDN docs) so it wouldn't make sense for them to have specific, different cursors. Browsers should simply display the default text cursor.
Labels are different. From w3schools:
Most browsers will display the element with the following default values:
label {
cursor: default;
}
Which is the normal mouse-pointer. This is likely to be because the label
element has a specific function, unlike the div
or span
– it is clickable and will affect the content of other input elements.
Generally, if I'm confused about a browser's default styles, I go to the w3schools CSS Default Values Reference, which usually explains why the browser is behaving as it is. You may also find this in the developer menu of the browser in question.
If you don't like the styles which the browser is applying, simply override them in your CSS. As you have already said in your question, specifying a cursor
for the label
tag would be a good solution.