The classic answer to your question is CSS columns. This was already mentioned in another answer. This gives you the ability to split the block into columns.
In another answer, you stated that it may not work for you, because you want to position graphic elements and have a flow of text around them.
This is possible using CSS columns - I have to admit that I have not tried it, but you can make the text normally bypass the graphics, so I donโt understand why this should not be possible with the help of Columns, since it should work like any other block layout text inside it.
However, if this is not enough for you, then CSS offers another solution called CSS Regions. This is a mechanism that allows you to specify that text can flow from an element to another. You can snap your blocks and place them the way you like. This gives you complete freedom to lay out your page as you like.
You can learn more about this: http://msdn.microsoft.com/en-us/ie/hh272902#_CSSConnected
Basically, this is a completely free page layout system, and it should be exactly what you are looking for.
It's a good news.
The bad news is that there is currently virtually no browser support in CSS regions. See CanIUse for full browser support information. As you can see from the tables at this link, it goes to several browsers, but even after its implementation, it will slightly lag behind sufficient user support to make it useful.
What a shame, because that is exactly what you are looking for.
source share