some css in usercontent.css does not get applied




16 years ago
16 years ago


(Reporter: asmith, Assigned: dbaron)


Windows XP

Firefox Tracking Flags

(Not tracked)





16 years ago
As I understand it, if you give a css rule that uses the universal selector '* {
csshere; }', and then give a rule after that which has a more specific selector,
ie '* element { csshere; }', then the more specific rule should overrule the
previous general/universal rule. If I have this wrong, feel free to mark this

Anyway, in usercontent.css, I have the following rules setup just so page
authors can't annoy me by changing the cursors to ne-resize, etc:

* { cursor: default ! important; }
* input > * { cursor: text ! important; }
* a, * a:link, * a:visited, * a:hover, * a:active { cursor: pointer ! important; }
* > a, * > a:link, * > a:visited, * > a:hover, * > a:active { cursor: pointer !
important; }
* a > * { cursor: pointer ! important; }
* map > area { cursor: pointer ! important; }

the first rule is there because the page authors i mentioned before actually
apply { cursor: ne-resize; } to a LOT of elements, like body html div td p, and
a few others i overlooked. i didn't want to keep editing this css sheet
everytime i stumbled across another element people apply weird cursor css to, so
i figured I would apply the universal rule first to cover all elements, and then
use rules after that to change the cursor to i-beam, linking pointer hand, and
such for the elements that normally have those cursors.

the bug is that mozilla is ignoring the last rule, for imagemaps. with that
first universal rule at the top, areas of a map element don't get the pointing
finger cursor to indicate a link, the cursor remains unchanged as an arrow. i've
tried '* map area', '* map > area', and '* map area[href]'. None of those
selectors work.
We're getting the cursor property from the image, not from the area.  Thus it
seems like you need a rule such as:

:link *, :visited *, img[usemap], object[usemap] {
  cursor: pointer ! important;

to supersede your next-to-last rule.  You shouldn't select on "a" since it
matches named anchors too, and you don't need the "* " at the beginning of any
of the selectors.
I don't think CSS should apply to AREA elements since they're not really part of
the rendering tree -- they can be used in multiple places or not at all.  Our
current UA stylesheet has

area { display: none; }

and I think that's correct.  In other words, I don't think this is a bug in
Mozilla.  (Also see my previous comment.)
Last Resolved: 16 years ago
Resolution: --- → INVALID

Comment 3

16 years ago
Thanks for clearing that up, David. Works fine now using the rule you gave.
You need to log in before you can comment on or make changes to this bug.