最佳实践:ASP.NET中的CSS或主题?

时间:2009-02-02 18:28:20

标签: asp.net css themes

我何时应该使用ASP.NET主题,何时应该使用CSS?使用一个优于另一个的优点和缺点是什么?

7 个答案:

答案 0 :(得分:15)

我建议在主题上使用CSS。原因是在CSS中你可以修改你的样式,使它们适用于所有浏览器。你可以用主题做同样的事情,但微软的设计师因修复你修复的东西以使它们适用于所有浏览器而臭名昭着,所以它的效率很高。坚持使用CSS,您将花费更少的时间。

答案 1 :(得分:9)

更好地在一起!

但是主题不是CSS的替代品,或者它们不是为了CSS的等价目的而构建的。它的目的是在您的应用程序上定义不同的主题,并用一行更改它们。主题可以包括CSS文件,图像文件和皮肤。

使用外观,您可以为asp.net控件定义样式,因此它包含复杂而完整的解决方案。例如,您可以定义gridview并定义其样式和属性。您可以在应用程序范围内定义它。

所以你认为他们在一起更好,但不等同于比较。

答案 2 :(得分:2)

如果您正在考虑聘请外部设计机构或设计师,那么您最好使用CSS,因为CSS对他们来说是众所周知的 - 因为主题更多是以开发人员/ VS为中心的。

答案 3 :(得分:1)

如果您使用会员资格,个人资料和个性化,主题非常方便。除此之外,Visual Studio Designer是臭名昭着的。如果您考虑到浏览器兼容性,则应广泛使用CSS。

答案 4 :(得分:1)

如上所述,它们并不相互排斥。我有机会拥有多个主题,这些主题本身包含适合基于站点配置的CSS / Media / Skin文件集。

答案 5 :(得分:1)

你应该把它们结合起来。使用主题文件夹中的css文件来正常设置网站中所有html元素的样式(包括所有生成的元素)。

在控件的外观文件中,您可以设置默认的css类。其他属性,如元素的布局和默认行为(示例:日历控件)也可以在这里编辑。

皮肤文件适用于所有特定于布局的配置,您无法轻松使用css,但具有控件的.net属性。

答案 6 :(得分:0)

我建议一起使用两者,我使用主题在控件上设置css类,然后在css文件中设置它们的样式。 例如:

皮肤:

<asp:CompareValidator runat="server" Text="*" CssClass="Validator" Display="Dynamic" />
<asp:RangeValidator runat="server" Text="*" CssClass="Validator" Display="Dynamic" />
<asp:CustomValidator runat="server" Text="*" CssClass="Validator" Display="Dynamic" />
<asp:RegularExpressionValidator runat="server" Text="*" CssClass="Validator" Display="Dynamic" />
<asp:RequiredFieldValidator runat="server" Text="*" CssClass="Validator" Display="Dynamic" />
<asp:ValidationSummary runat="server" CssClass="ValidationSummary" />

的CSS:

.Validator
{
    color: Red;   
}

.ValidationSummary
{
    font-size: 0.8em;
}

.ValidationSummary > ul
{
    list-style-type: disc;
    padding: 0 0 0 15px; 
    margin: 0;
}

.ValidationSummary > ul > li
{
    padding: 0;
    margin: 0;
    color: Red;
}