In CSS, elements with display: inline cannot have width or height applied to them. You need display: inline-block for that. IE will incorrectly convert any inline element to inline-block if you give them a width or height. Fortunatley, since the release of Firefox 3 you can use inline-block with only minimal hacking.
no Firefox 2 compatibility:
.ib { display: inline-block; zoom: 1; *display: inline; }
Example HTML
<div class="ib button">My button</div>
Firefox 2 compatibilty
.ib{ display: -moz-inline-stack; display: inline-block; zoom: 1; *display: inline; }
.button { display: block; }
Example HTML
<div class="ib"><div class="button">My button</div></div>
In your .button implementation you would need to remove the display: inline portion.