If written to a control, this does not comply with the specification, although it works in general, but not if you load the user control dynamically, such as with AJAX. If the calling page is pre-written in the header, that’s fine, but the meaning of the control is compromised. Control code: const string STYLE =” < STYLE type=” text/ CSS “”>.C {border-right:1px #D9AE7F solid; border-bottom:1px #D9AE7F solid; cursor:pointer; font-family:arial; font-weight:bold; height:23px; background:#FFF7DD none repeat scroll 0 0; line-height:20px; } #ctem td {border-bottom:1px solid #F0F0F0; color:black; height:25px; } #ctem a:link,#cctvitem a:active,#cctvitem a:visited {color:black; text-decoration:none; } #ctem a:hover {color:red; text-decoration:underline; } .TMSpan {cursor:pointer; display:inline; width:70px; margin:3px 2px 0px 2px; height:16px; border-left:1px solid #D9AE7F; border-right:1px solid #D9AE7F; border-top:1px solid #D9AE7F; text-align:center; font-weight:bold; } “; protected void Page_Load(object sender, EventArgs e) {/ / Controls own CSS this. Page. The Header. The Controls. The Add (new LiteralControl (STYLE); } The control’s CSS will appear in the of the call page.