Check your attached css. There's a good change some global style override is causing this. I had similar issues with calendar and dropdown menus several times.
1. Try the same code without any custom styles (just temporaly disable yours)
2. If the component is rendered correctly start adding your styles piece by piece to pinpoint the rule causing the problem. Often it has to do with some DIV's float, position css attributes.
You are correct. I guess that's the problem when working on a massive existing product. There was a style sheet out there clobbering my button. Thank goodness for FireBugs and MS Developer Toolbar.