I found a CSS only solution. This might not work in all browsers yet, but certainly seems to work in the major ones.
article {
width: -moz-min-content; /* Firefox/Gecko */
width: -webkit-min-content; /* Webkit */
width: min-content;
}
See fiddle: http://jsfiddle.net/U2Vxr/
And a full article on the matter: http://demosthenes.info/blog/662/Design-From-the-Inside-Out-With-CSS-MinContent