These are my findings - this is not meant to be an answer and certainly is not comprehensive - these are my notes from chasing down a similar problem. (N:B Probably not expressed in strictly correct technical terms but hopefully you will get the main meaning)
My aid memoire - for chasing down un-expected positioning problems.
floated or absolutely positioned or position fixed elements with width auto shrink to content dimensions.
Always specify a width and height for a floated element - this avoids confusion.
Regardless of positioning the height of an element = content height if no height specified.
Be aware of collapsing margins when attempting to use margin auto vertical. Unless explicitly controlled touching vertical margins will collapse into each other.
When using margin auto horizontal ensure if not a block element set css display: block; and regardless always ensure width < 100% of container.
Beware IE8 and earlier non standards compliant box model (i.e. included padding and border in the width instead of being additional to) -- resolution always use html 5 doctype ... <!DOCTYPE html>
From your description of the problem - I am guessing that issue you are having is down to the relationship between the element and it's container - which was the problem I encountered. jsfiddle.net is great place to play with this sort of thing.