Pergunta

Qual é a principal diferença entre .skin e .css em asp.net?

.skin é um novo aprimoramento do IDE. Eu tenho trabalhado com .css. O que está disponível em .skin isso não é para .css

Obrigado, Saj

Foi útil?

Solução

No arquivo de pele, você pode definir propriedades do ASP.NET Controls.

Por exemplo,

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

Todos os controles da caixa de texto em seu aplicativo terão largura 200.

Você pode dar um nome e apenas os controles que você gosta pode configurá -los para aplicar uma pele, por exemplo,

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

Agora, em uma página da web, quando adiciona o controle da caixa de texto, você pode definir seu skinid como "multilinetextbox" como o seguinte,

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

e assim herdará o modo de texto como multilina e a altura como 240.

Para usar a pele, você deve adicionar um tema ao seu aplicativo na pasta app_themes e aí você adiciona o arquivo de pele, agora para usar esse tema em suas páginas, você precisa definir a propriedade EnableTheming da página como True, Stylesheet theMeme ou tema para o nome do seu tema. Você também pode definir essas propriedades no arquivo de configuração.

Definindo o tema na página aspx,

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

Definindo o tema no web.config,

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

Outras dicas

Observe que em termos do que essas duas coisas realmente Faz Há uma diferença considerável. Quaisquer propriedades definidas no arquivo .skin são copiadas para todos os controles da página. Uma vantagem de usar folhas de estilo em cascata é que as informações são carregadas e armazenadas em cache uma vez. (e pode ser aplicado a várias páginas da Web.) Os arquivos de pele podem causar inchaço de página, porque todas as propriedades definidas no arquivo de pele devem ser mescladas com todo controle afetado toda vez que a página for renderizada.

Além disso, o comportamento padrão do tema asp.net. sobrepor as propriedades dos controles sendo afetados (esse pode ser um comportamento inesperado). Por exemplo, se você definir o Width Propriedade para todos os ASP: rótulos em seu .skin Arquivo, todos os ASP: etiquetas que usam o arquivo de pele terão seu Width propriedades definidas para a do .skin o arquivo é independentemente do indivíduo do controle Width contexto. Para evitar esse comportamento, o ASP.NET StylesheetTheMe pode ser usado para permitir que propriedades no nível de controle substituam as propriedades globais da pele.

Você pode definir algumas propriedades, como a largura, mesmo no CSS. Além de poder definir propriedades que o CSS não pode, há algumas coisas que você precisa.

Considere um exemplo em que você precisa de todos os controles ASP: Rótulo em sua página para estar em cor azul. A ASP: Rótulo é realmente texto dentro de um período, isso está dentro de uma div. É por isso que somos capazes de definir algumas propriedades, como o Backcolor para esta rótulo ASP: e por que o controle de etiqueta padrão não possui uma propriedade 'Backcolor'.

Então, se você tentar definir a cor da fonte para todos os rótulos do ASP através do CSS,

Então algo como

Label {
color: Blue; 
}

Não funciona. Por outro lado, usando um arquivo de pele, você pode escrever

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

E isso definirá todos os rótulos para a cor azul.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top