If I understand correctly and you are concerned (which is also significant) conflicts with CSS, then including your own style sheets after the library is the best starting point; as @rthor noted.
However, this may not solve every problem, because it also depends on the specifics of the CSS selectors. There is a good article about CSS Specificity that should also help you deal effectively with CSS conflicts that arise.
Now the area? This is a different topic, and another, a bit more confusing - solely because of (unexpected surprise) browser implementation. You can just polyfill for older browsers, but this is not very convenient. This is purely an HTML5 function that seems if you are not talking about: the psuedo-selector .. sphere, which is a working draft for CSS Selectors 4
I am sure that some front-end wizards will be able to give you low specificity regarding scope, since I expect my solution to be poor. You can always use container elements (go out, I know, not perfect) and ensure that all styles are specifically designed for children of the container element.
Essentially ..
<div id="widgetA" class="scope"> <div id="bla bla">.....</div> </div>
Ensuring that all your CSS selectors start with a container element:
div#widgetA{ }
However, this is due to nasty things, such as non-semantic markup and too specific selectors, which are poorly suited for performance. However, it has outdated support and is developing rapidly, albeit a bit hacked. If you use something like Sass / Less, you could even quickly wrap the entire CSS library file in a div.widget{ } rule and compile it; (although with the above disadvantages).
Alternatively, from the javascript view - if you target certain elements (and only those elements), I donβt see too many problems arising in libraries applying their own style - since libraries should not really interfere with other elements.
Good luck.