The trick with CSS and any kind of Javascript is to remember that MODx doesn't have anything at all to do with any of that; it's all done by the browser. All MODx does is provide the HTML structure that forms the base for the CSS and Javascript to work on.
What I always do is get the CSS or Javascript working on a flat-file HTML page (or paste the demo page's code directly into the template itself), then use the snippet's tpls to output exactly the same HTML code that works in flat HTML. In some case, this may take more than one snippet. For a certain rotator with accompanying text that I'm fond of I use resources with image TVs, then two Ditto calls to set up the image list block and the caption block.
Occasionally I'll get a Javascript conflict, but two things I've done for some years now has eliminated that problem. One is to use only JQuery libraries and plugins. There hasn't been a single Javascript effect or widget I've wanted to do that JQuery doesn't have at least one or two plugins for. The other is to always manually link the main JQuery library in my template, and turn off QuickManager's loading of it in QM's configuration. So far QM has happily run on every version of JQuery.
As far as avoiding CSS conflicts, make sure your HTML structure has the proper containers for any block of specially styled or positioned content so you can be more specific in your CSS directives. For a menu, for example, you'd want something like
<nav id="mainmenu">...</nav>