Themes e CSS... Mah...

di Andrea Zani, in .NET2,

Approfittando della bella giornata tra le Alpi come al solito me ne sono andato in bici. Al ritorno mi sono messo a giochicchiare con l'ennesima versione pre-beta di .net 2.0. Sono ritornato dopo mesi a giocare con i themes, una delle grandi novità prevista con la nuova versione di asp.net.

A proposito, segnalo quest'ottimo articolo del mio vicino di casa MVP David De Giacomi sull'argomento ;)

Ricordo anche che abbiamo parlato dell'argomento in un freddo marzo di quest'anno. Dopo essere stati a cena con Daniele a Ponte di Legno, sulla via di ritorno, dopo mezzanotte, sotto una fitta nevicata.

Banalmente, con i themes è possibile impostare delle proprietà di default per i webcontrol asp.net. Per esempio, impostando nella pagina degli skins nella cartella Themes della nostra webapplication di questo tipo:

<asp:Label runat="server" ForeColor="#000066"
BackColor="transparent"></asp:Label>

Ogni volta che inseriremo una label nella nostra pagina:

<asp:label id="mia_label" runat="server" />

Saranno impostate di default le proprietà "ForeColor" e "BackColor".

Bella idea, non c'è che dire: è sufficiente creare più pagine di skin in cartella apposite e modificare la proprietà "theme" della direttiva "Page":

<%@ Page Theme="MyTheme" language="c#" %>
<%@ Page Theme="MyTheme2" language="c#" %>

Per cambiare in maniera facile e veloce lo stile grafico di tutti i web control presenti nella pagina.

Ma qual era la mia perplessità su questa tecnicna e novità? Dal semplice fatto che quelle proprietà non fanno altro che inserire nel control html creato la proprietà style con tutte le opzioni del caso. Per esempio, la label prima mostrata:

<asp:Label runat="server" ForeColor="#000066" BackColor="transparent"></asp:Label>

Inserirà nel codice HTML:

<span id="Label2" style="color:#000066;background-color:Transparent;">ciao</span>

Niente di male, ma la stessa cosa non si ottiene con i fogli di stile css?

#Label2 {
color:#000066;
background-color:Transparent;
}

E nel documento html:

<span id="Label2">ciao</span>

A video avremo lo stesso risultato con un vantaggio: se nella nostra pagina sono presenti centinaia di TAG span, non riempiremo il codice di centinaia di definizione di stile visto che, una volta impostato nella pagina o in un foglio esterno il css, penserà a tutto il browser.

E la facilità di modifica da uno stile all'altro? Perché? Che differenza c'è nel progettare un secondo foglio di stile?

Mah... sarà polemico, non vedrò la cosa nella sua interezza ma questa mi sembra il dettaglio meno importante della nuova versione di .NET. Già con la versione 1.1 di XHTML si va verso un distacco completo dal contenuto alla sua visualizzazione (da quanto sembra, la proprietà style non sarà più accettata).

Trovo eccezionale questa tecnica in XAML, ma per le web-application mi sembra una comodità in più non necessaria...

E' un periodo da dimenticare...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese