<div>
elements are "block"-level elements, by default. What this means is that they are always preceded by what can be thought of as a new line, as opposed to being "inline" with the current line.
On the jsFiddle you link to, try changing div.right
to be display:inline;
or display:inline-block;
(line 25 of the CSS). This will cause the <div>
to be displayed "inline" with the current line.
I have forked your fiddle to demonstrate the change I suggest:
http://jsfiddle.net/CBEGS/1/
Note that the vertical margins might need some adjustment and the wrapping might still force the buttons to wrap onto the next line, but solving these seperate issues are the subject of a seperate question :)
To have div.right
right-aligned and the h1.nobreak
left-aligned, you might need to make the width of div.header_div
set to 100% so that it is aligning to the right of the page as opposed to the right of a narrow div.
Also, these questions may be of relevance:
Align two inline-blocks left and right on same line
"text-align: justify;" inline-block elements properly?