我认为主题应该是视觉呈现的全部?

时间:2009-12-28 19:28:33

标签: asp.net webforms themes


主题是基于控件而不是基于html的 - 因此主题允许您重用几乎任何控件属性。

1)

a)是否存在影响控件外观的控件属性,但无法通过CSS表示?

b)如果有这样的属性,那么我假设这些属性被翻译成Html而不是CSS?!但这没有多大意义,因为CSS更能描述控件的视觉外观!

c)无论如何,你能举出一些这些属性吗?


2)我认为主题应该(就像CSS一样)所有关于表示(即Html文档的视觉方面),但似乎并非如此,因为控件也有许多未定义的属性渲染控件的视觉外观?!换句话说,我没有看到主题的有用性,也指定了非视觉相关的控件属性。或者我错过了什么?


感谢名单

2 个答案:

答案 0 :(得分:4)

主题是尝试替换可再分发控件的CSS。主题的要点是你有一个更强类型的语法和一个预先构建的“皮肤”框架。

在我看来,主题是失败的,正是由于你所描述的原因 - 属性不包括足够广泛的DOM属性范围,在指定web控件的自定义呈现方面非常有用。获取模糊属性所需的额外编码会在您第一次编写代码时忽略主题的有用性。此外,必须学习一种全新的属性语法才能抽象出CSS会产生反效果,因为非ASP.NET网站永远不会使用它 - 换句话说,它只是不标准。

我开始使用主题的每个webforms项目最终都会删除嵌入式CSS网络资源。

答案 1 :(得分:1)

回答你的问题:

  

a)是否存在影响视觉的控制属性   外观的控制,但不能   通过CSS表达?

我认为这取决于“视觉外观”的含义。例如,向网格添加额外的列肯定会改变其外观,但无法在CSS中完成。

  

b)如果有这样的属性,那么   我假设这些属性是   翻译成Html而不是CSS?!但   这是没有多大意义的,因为   CSS更能描述   对照的视觉外观!

由于网页基本上是HTML + CSS + Script,因此如果不使用CSS进行视觉更改,那么它可能是HTML。

  c)无论如何,你能不能给我一些名字   这些属性?

<asp:Label>上的“文字”属性怎么样?

主题不是“所有关于演示文稿。”

主题只是一起工作的CSS文件,JavaScript文件,图像和皮肤文件的集合。主题可能包含一个CSS文件,并且与控件没有任何关系。

皮肤文件, 面向控制。外观文件允许您为控件设置属性默认值。大多数属性都是默认的,而不仅仅是控制外观的属性。例如,如果您在应用程序中使用GridView,则外观文件允许您建立标准外观,而不是每次使用该控件时都必须重复相同的属性分配。

StyleSheetThemes允许您覆盖页面上的默认值。常规主题优先于您在页面上指定的属性。

此外,在一个地方(皮肤)收集控件的属性默认值使它们更易于管理,类似于CSS类对HTML的操作。