如何设计ASP.NET网站来延迟样式/主题?

时间:2020-03-06 14:44:35  来源:igfitidea点击:

我需要为Intranet网站构建一个原型,并且我想专注于可用性(布局,导航性等),然后将主题留待以后使用(我的品味很差,所以这可能会由其他人来完成)

我知道ASP.NET可以立即切换主题的功能,但是我如何设计WebForms使其在以后变得容易呢?

  • 我是否应该使用类属性创建控件,该控件指向将来的CSS中将要存在的东西?
  • 还是只创建控件而不用担心,创建主题时将很容易处理它?

解决方案

只需将控件包装在div中即可。最终将使布局/样式更容易

如果我们打算使用ASP.NET主题,则可以通用设计所有控件,并在以后添加外观。根据设计的复杂性(意味着文本框或者网格视图等具有多少种不同样式),这可能不会节省很多工作,但这是使用内置.Net支持进行主题化的一种方法。

确保使用MasterPage,以便所有子页面都具有相同的基础,并为所有元素提供良好的ID,因为我们仍需要动手使用CSS来将它们放在一起。

这是一个不错的"主题和外观"教程的链接。知道将来要添加的内容后,现在就可以更轻松地对其进行设计。

皮肤可能是答案,但是这让我很生气(也许是因为我不喜欢特定于该供应商,我希望我的技能适用于.NET以外的其他Web语言和平台)。我更喜欢在所有ASP.Net控件上使用CssClass属性,并仔细对其他所有内容进行分类,并使用尽可能多的语义标记。然后,当我设置好控件并开始工作时,我会使用CSS设置所有内容的样式(尽管此时我通常必须调整HTML和JavaScript的内容)。

与我合作的另一位开发人员更喜欢使用Microsoft的Skins和page指令等方式来做所有事情。这可能是最好的方法,但是在我看来,感觉就像是将太多的演示文稿混入了应用程序的中端和后端。

我想提出这样的观点:完全忽略主题,只使用CSS。对我而言,还不清楚什么会增加价值主题。这是一种非常针对Microsoft的方法,其输出并不总是符合标准。通过使用CSS,我们将扩大能够在项目上工作的潜在设计师的范围,并且我们将更有机会拥有一个跨浏览器且符合标准的网站。

如果其他人稍后将对此进行样式化,则只需确保我们提供足够的"钩子",以使他们能够设计此样式。这意味着将CSS类添加到几乎所有我们将以类似样式进行的操作中,并在适当的情况下使用CSS类将内容包装在div或者span中,例如

<div class="ButtonContainer">
       <asp:linkbutton runat="Server" cssclass="Button Cancel" command="Save" text="Save" />
       <asp:linkbutton runat="Server" cssclass="Button Save" command="Cancel" text="Cancel" />
     </div>

但是,如果我们对CSS没有足够的了解,并且没有内部命名约定或者标准样式表,那么我们将不会真正知道如何构造div和类。在我们的商店中,我们处理此问题的方式是程序员只编写标准的ASP.NET标记,然后设计人员仔细检查并添加与将要开发的样式表一起使用的div,span和类名。