That's because the h1 element is block-level element by default.. Add: h1 {display: inline; } to your css and they work as you want. The above answer suggests float, but I've tried that and it doesn't work (at least on Chrome). #ul_top_hypers li { display: inline; } On a separate note, it's worth noting that there should be only one h1 per page, all other headings, semantically, are below that heading and are sub-headings, of a sort. It’s not as semantic as a