在asp.net中,.skin和.css的主要区别是什么?
.skin是集成开发环境的新增强。我一直在和.css合作。.css无法访问.skin中的哪些内容
谢谢你,萨吉
发布于 2010-10-27 22:28:24
在外观文件中,您可以设置asp.net控件的属性。
例如,
<asp:TextBox runat="server" Width="200"/>应用程序中的所有TextBox控件的宽度都将为200。
您可以为其命名,并且只有您喜欢的控件才能设置它们以应用外观,例如,
<asp:TextBox SkinID="MultiLineTextBox" runat="server" TextMode="MultiLine" Height="240"/>现在在网页中添加TextBox控件时,可以将其SkinID设置为"MultiLineTextBox“,如下所示。
<asp:TextBox runat="server" SkinID="MultiLineTextBox"/>因此它将继承高度为MultiLine的TextMode和高度为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>发布于 2010-10-27 22:34:29
请注意,就这两件事的实际用途而言,存在着相当大的差异。.skin文件中设置的任何属性都将复制到所有页面控件中。使用级联样式表的一个优点是,信息只加载和缓存一次。(并且可以应用于多个网页。)外观文件可能会导致页面膨胀,因为每次呈现页面时,外观文件中设置的所有属性都必须与每个受影响的控件合并。
此外,ASP.NET主题.skin文件的默认行为是覆盖受影响控件的属性(这可能是意外行为)。例如,如果为.skin文件中的所有ASP:标签设置了Width属性,则使用外观文件的所有ASP:标签都将其Width属性设置为.skin文件的Width属性,而不管控件的各个Width设置如何。若要避免此行为,可以使用ASP.NET StyleSheetTheme来允许控件级属性重写全局.skin属性。
发布于 2014-05-07 15:48:14
你甚至可以在CSS中设置一些属性,比如宽度。除了能够设置CSS不能设置的属性之外,还有一些事情需要.skin文件来完成。
考虑一个示例,其中您需要页面上的所有asp:Label控件都为蓝色。asp:Label实际上是span中的文本,也就是隐藏div中的文本。这就是为什么我们能够给asp:Label设置一些像BackColor这样的属性,以及为什么标准的label控件没有'BackColor‘属性。
因此,如果您尝试通过CSS为所有ASP标签设置字体颜色,
然后是像这样的东西
Label {
color: Blue;
}不会起作用。另一方面,使用皮肤文件,您可以编写
<asp:Label runat="server" ForeColor="Blue"></asp:Label>这会将所有标签设置为蓝色。
https://stackoverflow.com/questions/4034313
复制相似问题