> --rendering problems of a widget, in my experience, could involve > many, indeed EVERY attribute of every element in the widget.
you declare your default stylesheet, then you declare your widget's sheet. if the widget is inheriting incorrectly from a parent element you've got a couple of ways around it. making every single line of the widget's CSS !important is probably the longest (not in terms of a find replace in n++, rather in terms of physical size). a nicer change would just be to give the widget's parent element an appropriate attribute val to reign in the -999px left-margin you originally gave it. > --this solution is for cases where changing your default css, which > will of course affect your main site rendering, is undesirable or > impossible. for me, doing a global replace of ";" with " !important;" > takes about 1/2 a second. on the other hand, fine-tuning my main site > css so that the widget and the site both look right could potentially > take hours of trouble-shooting, trial-and-error, and juggling > precedence, including specificity, order of declaration, id's and > classes, and so on. the inheritance path really isn't that complicated, and if your stylesheet to that complex you don't fully understand it, inspecting an element in firebug to see where it's getting it's style from takes a couple of seconds. it's an ugly hack that has so many potential problems it's barely worth considering for anything but the simplest widget, and at that point why not just fix the widget's CSS properly. > !important does not 'break' css-- it's part of the css language, > intended to be used where appropriate. the last part of that sentence is the important bit! ;)