Una caratteristica importante che riguarda l'utilizzo dei temi in ASP.NET 2.0 è la possibilità di definire tramite i file .skin le proprietà grafiche (e non solo) dei vari controlli web utilizzati da una applicazione. Di fatto un file .skin rappresenta una specie di style-sheet server-side utilizzato per definire estetica e impostazioni dei controlli server utilizzati.
Sebbene sia possibile farlo, è da evitare l'utilizzo dei file .skin per la definizione delle proprietà grafiche che possono essere impostate tramite i fogli di stile CSS. Infatti l'assegnazione di un valore ad una proprietà di un controllo nell'ambito di un file .skin corrisponde in fase di rendering all'inserimento nel tag renderizzato di un attributo style contenente l'espressione equivalente secondo la sintassi CSS.
Questa trasformazione delle proprietà di un controllo in altrettante espressioni CSS non è sempre aderente agli standard, come auspicabile. Questo avviene perchè non sempre esiste una esatta corrispondenza tra proprietà del controllo e proprietà CSS.
Un esempio viene fornito dalla proprietà ImageAlign del controllo Image di ASP.NET. In fase di rendering la proprietà viene renderizzata con l'attributo align, definito obsoleto nell'ambito di XHTML Strict. L'approccio corretto è quello di definire una classe CSS (nell'esempio riportato, la classe si chiama "OnTheLeft") contenente le proprietà float e/o vertical-align, a seconda dei casi.
Ecco l'approccio errato:
<asp:Image SkinID="Sample" runat="server" ImageUrl="images/sample.jpg" AlternateText="Wrong!" ImageAlign="Left" />
E quello corretto:
<asp:Image SkinID="Sample" runat="server" ImageUrl="images/sample.jpg" AlternateText="Right!" CssClass="OnTheLeft" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.