title: Understanding the runat server attribute
body: <p>I'm really new to ASP.NET. I was just checking out a default ASP.NET web application. It comes  by default with a few pages (Default.aspx, About.aspx etc).</p>
  
  <p>I noticed that the Site.master file is the file where i create the main layout for my pages.
  But i also noticed that the <code>head</code> tag has a <code>runat="server"</code> attribute.</p>
  
  <p>I know this tag is used in <code>&lt;asp:XXX&gt;</code> tags, but why in a <code>&lt;head&gt;</code> tag???</p>
  
  <p>Also, when i remove that attribute, then all of the styles are gone from the webpage. So appearently it's doing something. I just don't understand what its exactly doing...</p>
  
  <p>So why is it there, on an HTML tag...??? I don't see any code in there that should be run on the server...</p>
  
  <pre><code>&lt;head runat="server"&gt;
      &lt;title&gt;Hallo&lt;/title&gt;
      &lt;link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /&gt;
  
      &lt;!-- This part is run on the server. So why does the head tag
           also need a runat=server ?? --&gt;
      &lt;asp:ContentPlaceHolder ID="HeadContent" runat="server"&gt;
      &lt;/asp:ContentPlaceHolder&gt;
  &lt;/head&gt;
  </code></pre>