2010-10-27 18 views
13

¿Cuál es la principal diferencia entre .skin y .css en asp.net?.skin vs .css de asp.net

.skin es una nueva mejora de IDE. He estado trabajando con .css. Lo que está disponible en .skin que no está a .css

gracias, saj

Respuesta

20

En el archivo de la piel puede establecer propiedades de controles ASP.NET.

Por ejemplo,

<asp:TextBox runat="server" Width="200"/> 

Todos los controles de cuadro de texto en su aplicación tendrán la anchura 200.

Puede darle un nombre y sólo los controles lo desea, puede establecer a aplicar una máscara por ejemplo,

<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/> 

ahora en una página web cuando se agrega el control Cuadro de texto se puede establecer su SkinID ser "MultiLineTextBox" como el siguiente,

<asp:TextBox runat="server" SkinID="MultiLineTextBox"/> 

y por lo tanto va a heredar el TextMode como de varias líneas y la altura como 240.

Para utilizar la piel que hay que añadir un tema a su aplicación en la carpeta App_Themes y hay que añadir el archivo de la piel Ahora, para usar este tema en sus páginas, debe establecer la propiedad EnableTheming de la página en verdadero, StylesheetTheme o Theme en el nombre de su tema. También puede establecer estas propiedades en el archivo de configuración.

Ajuste del tema en la página aspx,

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" EnableTheming="true" StylesheetTheme="Your Theme Name" %> 

Ajuste del tema en el web.config,

<configuration> 
    <system.web> 
    <pages styleSheetTheme="Your Theme Name"></pages> 
    </system.web> 
</configuration> 
+0

Buena explicación: Pero recibí un error cuando intento usar ... el error es ... Se ha especificado un SkinID pero la página no está configurada para usar un tema de página o un tema de hoja de estilo. Esto es aceptable si el tema o el tema de la hoja de estilo se establecerá mediante programación. Para .css tenemos que dar un enlace desde la página aspx ... no hay ningún tipo de máscara cuando trato de dar un enlace ... ahora cómo puedo acceder al archivo .skin – selvaraj

+0

Actualicé la publicación para explicar cómo usar el tema y la máscara archivo –

+0

Corrígeme si me equivoco, pero debe usar el atributo 'SkinID = 'MultiLineTextBox" 'no solo cuando consulte el aspecto en el botón asp: sino también cuando defina el aspecto. (segunda línea de código). Buena respuesta de todos modos. – Tomas00

7

Nótese que en términos de lo que estas dos cosas en realidad hacen existe una diferencia considerable. Todas las propiedades establecidas en el archivo .skin se copian en todos los controles de página. Una ventaja del uso de hojas de estilo en cascada es que la información se carga y almacena en caché una vez. (y se puede aplicar a varias páginas web). Los archivos de máscara pueden provocar una saturación de página porque todas las propiedades establecidas en el archivo de máscara deben fusionarse con cada control afectado cada vez que se representa la página.

Además, el comportamiento predeterminado de los archivos .skin del tema ASP.NET es anular las propiedades de los controles afectados (esto puede ser un comportamiento inesperado). Por ejemplo, si configura la propiedad Width para todas las etiquetas ASP: en su archivo .skin, todas las etiquetas ASP que usen el archivo skin tendrán sus propiedades Width configuradas a la del archivo .skin, independientemente de la configuración individual del control Width. Para evitar este comportamiento, ASP.NET StyleSheetTheme se puede usar para permitir que las propiedades de nivel de control anulen las propiedades globales de .skin.

+0

No entiendo: ¿está diciendo que todos los ASPX compilados obtienen una sección de inicialización con todas las propiedades de la máscara? Todo esto se hace por el lado del servidor, ¿no es cierto? Entonces, ¿por qué es importante? – Rup

+0

Se hace del lado del servidor. Sin embargo, se realiza cada vez que se solicita la página; lo cual agrega un poco de sobrecarga. – NotMe

+0

Gracias @Chris sí, las propiedades se agregan al lado del servidor para cada control, lo que aumenta el tamaño de la página. –

1

Puede establecer algunas propiedades como Ancho incluso en CSS. Además de poder establecer propiedades que CSS no puede, hay algunas cosas para las que necesita el archivo .skin.

Considere un ejemplo en el que necesita todos los asp: los controles de etiqueta en su página deben ser de color azul. Un asp: etiqueta es en realidad texto dentro de un lapso, eso está dentro de un div oculto. Es por eso que podemos establecer algunas propiedades como BackColor en esta asp: Etiqueta y por qué el control de etiqueta estándar no tiene una propiedad 'BackColor'.

lo tanto, si se intenta establecer el color de la fuente de todas las etiquetas ASP a través de CSS,

entonces algo así como

Label { 
color: Blue; 
} 

no funcionará. Por otro lado, el uso de un archivo de la piel se puede escribir

<asp:Label runat="server" ForeColor="Blue"></asp:Label> 

y esto hará que todas las etiquetas para el color azul.

+1

Si configura la propiedad 'AssociatedControlID' en el 'asp: Label', su Label CSS funcionará porque el' asp: Label' se representará como 'etiqueta' en lugar de' span'. Además, podría definir un aspecto de "etiqueta" que aplique una clase "etiqueta" al tramo representado. http://jsfiddle.net/JamVw/ – Homer