This behavior is correct.
When you use asp.net button it makes postback so your div get hided though you dont add onclick event(server side).
But when you use html button & add attribute runat="server" it will not make postback.
So you should use html button or if you want to add asp.net button then add onclineclick like
<asp:button id="Button1" runat="server" text="Button" onclientclick="return false;" style="width :auto" />
Add debug point add page load you will get idea.