Understanding the runat server attribute
<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>
