There's a flood of errors in there - do you have an HTML validator? You should definitely grab one. There's a heap of duplicate attributes, unclosed tags, tags closed with the wrong closing tags... like this - 1 example out of.... 92! Though many of them aren't serious :D <button class="sheet-button-roll" type="roll" value="&{template:default} {{name=@{character_name} Rolls STR SAVE}} {{Melee Defense=[[1d20+(@{strength}+@{psi_body_discipline_str})]]}}" title="Melee Defense includes Dexterity, Deflection, Defense Bonus from Combat Style. Any Misc modifiers you must keep in mind manually."> STR <span class="sheet-red-color" title="Your max HP, including any artifiacts, cyb, etc." name="attr_mdf" disabled/> </button> </button> There's STR sitting outside all the tags, then a self-closing span, then the button is closed twice. On line 655 you've even got a block of attribute names missing their quotation marks. I'd highly recommend not only getting an HTML validator, but also laying it out in a tidier structure, properly nested and indented: <div id="outer"> <div class="container"> <span>Some attribute</span> <div class="inner-content"> <button name="some-button" class="some-class another-class" style="some-style: whatever;"> Button Label </button> <input name="attr_some_attribute" class="some-other-class" type="text" /> </div> </div> </div> Never put more than one element on a line, and don't be afraid to split a single component across multiple lines if it has a load of attributes on it - like the <button> above. Also try not to put any text outside tags at all - you can't style it, hide it, or do anything with it except by manually going through your entire HTML file (like the STR text in the code fragment up top). And it's good practice (though not enforced by HTML) to remember the / closing tag on a self-closing element like <input /> . Some elements can be used as self-closing, or with a paired tag - so leaving out the / slash can create confusion. If you combine a good structure with a validator, you'll save yourselves hours of heartache. Troubleshooting your CSS and scripts for hours because you missed a couple of quotes in the HTML is a massive waste of your time! edit - incidentally, the other error GiGs referred to is likely related. Erratic behaviour of CSS positioning is very often down to HTML structure errors (like an unclosed tag, or wrong closing tag)