To elaborate on Sandeeps explanation a little more, ASP.Net objects can be used on a web form, that uses combinations of just plain old HTML and ASP.Net Objects such as the panel control. So you can do it 2 ways, 1 in straight HTML or 1 as an asp.net object
or
Now you can also create that object in code behind, or pure code
Dim panel_Container as Panel = new panel
with panel_container
.style.add(HtmlTextWriterStyle.float, "left")
end with
controls.add(panel_container)
I don't know what the exact description is of using runat="Server" is, but I know you need it when using system.web objects on the web form, which is a .aspx page. The server will convert that object to HTML, and send the HTML back to the browser. So a Panel object is a set of div tags, a label is a span tag. I came from vb and asp classic and went to asp.net, and thought that all the elements on a webform has to be a asp.net object, but over the years, I learned how to better manage my time and produce consistent looking products by keeping asp.net objects to a minimum now. I just use straight HTML now, and only use asp.net object for things like master pages, or anything I need to interact with in code behind on the server side. I never us the object font attributes or colors anymore, and use CSS for that. In my opinion, don't get too crazy using the asp.net objects in the beginning, and just use html and CSS. As you start writing more code, then you can go back and convert some HTML to objects when needed.