Not only that, it takes talent. I've been doing HTML/CSS for years, and I still have no idea how to design something great, because I can't visualize what I want -- I only know what I like or don't like after I see it.
That's how I seem to be:- I can create nice elements of a design, but it always comes together to look out of place. The group I work with have a designer in our team who handles design for all our web apps.