Neither are conducive to good design! When your CSS framework starts determining the class names that you are using in your HTML, it's a bad thing.... Your class names should be descriptive (i.e. header, sidebar, footer, etc.).
When you're designing for the web, it's all about semantics and doing what's best for that given situation. In this case, you should be thinking, "what is the best, or most descriptive, class name I could use here?" When thinking this way, you end up with the cleanest, easiest to read, write, and edit code. When you ask "what's conducive to good design?", you have to assume that "good design" is applies not just to the styling of the site, but also to the structure and semantics of the code underneath the hood.
If you really want to use framework, I would recommend creating your own templates for sites that you build a lot of. If you build a lot of two-column, left sidebar sites, then create a very basic structured css file that already has a few IDs and class names ready to go for that type of site. However, you can't get carried away... Keep it simple, and just let it apply to the layout and the major elements of the page. The larger your starting file is, the more it will restrict the IDs and class names you use in your HTML.