By default browsers treat images as inline elements. I could write a short book on the difference between inline elements and block elements, but the difference that pertains to this conversation is that you can’t simply center an inline element.
Inline elements are treated like text. In order to center text you have to apply “text-align:center;” to it’s parent, such as a div or a p tag. You can’t target text directly using css but if you could such as the letter “a” in a sentance, “apples are good”, and you applied text align center to that “a” it wouldn’t do anything. The same rule applies to images displayed inline. You can’t really set it to display center directly, you have to target it’s parent with “text-align: center;” for an inline image to center. If you image is in a rich text module then using highlighting it and centering it using the toolbar will work by default.
Block elements fill the full width of the area that is available to them, they stack, and they are able to take on positional and sizing properties with more authority. You wouldn’t use text-align to center a block element because it is a block element not inline, but you can still center it directly using “margin: 0 auto;” where the left and right margin are set to auto.
Once you set an element to block you lose inline characteristics. In order for Hubspot to provide the option to center images, they would need to either:
1. Assume all image elements are block, which would cancel inline characteristics that you would most likely miss in most situations.
2. Add controls to the image module that effect it’s parent, not the image itself. These seams like it wouldn’t be that much of a challenge but I would imagine has large bug potential otherwise they would have implemented this already. Maybe you should suggest it in the idea forum.
Either way, when dealing with any CMS you get a certain amount of basic functionality from what they provide. If they attempted to cater to every possibility and challenge then Hubspot would still be in beta and would never be production ready. The internet is a poorly planned and very messy place.
That being said, it really isn’t very difficult to change an elements display option from inline, to inline-block, to block in order to do what you want using css. If it is a situation that you run into a lot then it might be worth hiring a developer to write you some boilerplate css for your page/email that you can use to quickly set things the way you would like them to be. It should be faily inexpensive and save you a lot of headaches.