Michiel van Otegem, IT Composer

Tuesday, June 07, 2005

Ik haat CSS, gelukkig is er ASP.NET 2.0

Ik ben geen designer, en dat zal ik ook nooit worden, al is het maar om de grondige hekel die ik heb aan CSS. Vooral als een CSS bestand wat groter wordt en de relaties tussen de elementen van belang wordt, zie ik vaak door de bomen het bos niet meer. Ik wil niet weten hoeveel uren ik niet heb verspild aan vragen als "waarom krijgt dit element nou niet die kleur die ik op plaats X in m'n stylesheet heb ingesteld?".

In ASP.NET 2.0 hebben we Themes & Skins, en daarmee kan werkelijk elke idioot, inclusief ondergetekende, opmaak verzorgen zonder zich druk te maken over CSS. In de App_Themes map van de website kun je een map maken voor iedere Theme die je wilt ondersteunen (bijvoorbeeld App_Themes\BlueTheme en App_Themes\RedTheme). Daarin zet je Skin-bestanden (.skin) met de opmaak definitie van ASP.NET controls. En hoe ziet die opmaak definitie eruit??? Als een gewone control, alleen dan zonder ID-attribuut en eventueel andere attributen die niet "skinable" zijn, zoals bijvoorbeeld DataSourceID voor data controls en ControlToValidate voor validatie controls.
Wil je toch nog wat met CSS doen, dan kun je .css bestanden in de map van een Theme plaatsen. In iedere pagina die gebruik maakt van de Theme wordt dan gelinkt in de pagina. Hoe makkelijk wil je het hebben?

Een theme gebruiken in een pagina is eenvoudig. Plaats in de Page directive Theme="BlueTheme", als volgt:

<%@ Page Theme="BlueTheme" %>

en klaar is Kees. Wil je een Theme dynamisch kunnen instellen, dan moet je dit in Page_PreInit doen, als volgt:

protected void Page_PreInit(object sender, EventArgs e)
{
   Page.Theme = GetTheme();
}

Hierbij is GetTheme() een methode die je zelf zult moeten invullen. Doe je dit overigens na Page_PreInit, dan krijg je een foutmelding.

1 Comments:

  • Ik heb het precies andersom: Ik vind CSS geweldig en hoe meer ik met ASP bezig houdt hoe meer ik er een hekel aan krijg...

    en dan heet ik ook nog Michiel...

    By Anonymous Anonymous, at 08 September, 2008 11:30  

Post a Comment

<< Home