.skin
和 .css
在 asp.net 中的主要区别是什么?
.skin
是 IDE 的新增强功能。我一直在使用 .css
。.skin
中有哪些功能不在 .css
中呢?
谢谢, saj
<asp:TextBox runat="server" Width="200"/>
你的应用程序中所有的文本框控件都将具有宽度为200。
你可以给它一个名称,只有你喜欢的控件才能设置应用皮肤,例如:
<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/>
现在在一个网页中添加文本框控件时,可以将其SkinID设置为"MultiLineTextBox",如下所示:
<asp:TextBox runat="server" SkinID="MultiLineTextBox"/>
因此,它将继承TextMode为MultiLine和Height为240。
要使用皮肤,您需要在App_Themes文件夹下向应用程序添加主题,并在那里添加皮肤文件。现在,要在页面中使用此主题,您必须将页面的EnableTheming属性设置为true,StylesheetTheme或Theme设置为您主题的名称。您也可以在配置文件中设置这些属性。
在aspx页面中设置主题:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" EnableTheming="true" StylesheetTheme="Your Theme Name" %>
在web.config中设置主题。
<configuration>
<system.web>
<pages styleSheetTheme="Your Theme Name"></pages>
</system.web>
</configuration>
即使是在CSS中,您也可以设置一些属性,例如宽度。除了能够设置CSS无法设置的属性外,还有一些需要使用.skin文件的东西。
考虑这样一个例子,您需要在页面上的所有asp:Label控件中将文本都设置为蓝色。asp:Label实际上是嵌套在一个隐藏的div元素中的span元素内的文本。这就是为什么我们能够为这个asp:Label设置一些像BackColor这样的属性,而标准标签控件没有"BackColor"属性的原因。
因此,如果您尝试通过CSS将字体颜色设置给所有ASP标签,
那么类似于下面的内容:
Label {
color: Blue;
}
<asp:Label runat="server" ForeColor="Blue"></asp:Label>
asp:Label
上设置'AssociatedControlID'属性,则您的标签CSS将起作用,因为asp:Label
将呈现为'label'而不是'span'。此外,您可以定义一个“label”皮肤,将“label”类应用于呈现的span。http://jsfiddle.net/JamVw/ - Homer
SkinID="MultiLineTextBox"
属性,而且在定义皮肤时也需要使用它(第二行代码)。无论如何,这是个好答案。 - Tomas00<pages theme="Your Theme Name"></pages>
而不是:<pages styleSheetTheme="Your Theme Name"></pages>
我说的对吗?如果是,这两种方式有什么区别吗? - Ashok Jingar