Post Name

ATTN: See this pen for another way to do this that is probably better: https://codepen.io/cheryllium/pen/ALvYRo

I have changed this div to class post-text, and given the name post-content to the div that wraps around all of these textual elements (the div with the white background you see here).

On the left, you have post-icon and on the right here you have post-content. We set float: left on the icon and float: right on the content, which causes them to "float" to each side of the parent container as you see here.

When you float a div, it doesn't add to the height of its parent. So it will appear to overflow the parent div. To fix this, you need to "clear" your floats by adding an element with clear:both after the LAST FLOATED DIV. This div right here happens to be the last floated div. If you look in the HTML, you'll see a div with class "clear" right after this. Sure enough, that's the one with clear:both.

Another Post

Using CSS classes (rather than ids) allows you to make multiple elements with the same styles, just as I have repeated this post element here by making a second post. In general, you want to avoid using ids as much as you can.