如何制作支持XHTML的DotNetNuke皮肤
December 2nd, 2008DNN 4.x 时代默认皮肤的弊病
在DNN4.x时代制作皮肤时默认的Doctype是HTML,使用HTML Doctype时你会发现CSS的表现异常的不稳定,例如应该默认左对齐的地方会莫名其妙的居中,margin:auto; 居中的代码在不同浏览器的表现又有很大的差异,这些问题都可以随着定义使用XHTML Doctype挥之而去。
为什么要制作XHTML皮肤?
说到网页标准化(Web Standard)我想大家都应该很熟悉吧,那么制作符合网页标准化的XHTML皮肤有什么好处呢?
- 符合标准化日后移植更加方便
- 用户能够通过样式选择定制自己的表现界面
- 结构更清晰,网页读取速度更快
- 多浏览器兼容性更好
更多的优点我就不赘述了,这方面网上的资源很多。
如何制作支持XHTML的皮肤?
经过大家不断的反馈,DotNetNuke核心团队推出了一个折中的解决方案
如上图所示,如果你要创建一个皮肤名字是contact.html 那么你需要建立一个同名的contact.doctype.xml文件注意后缀是.doctype.xml 文件的内容是
]]>
这样DNN系统在读取这个皮肤的时候如果检测到和皮肤文件同名后缀是.doctype.xml的文件就会把这个皮肤解释为XHTML Doctype, 通过查看网页的源代码你可以看到,成功加载XHTML Doctype源代码的第一行应该是
如果没有成功加载则显示HTML Doctype
DNN 5.0对XHTML的支持
在这里我们快速展望一下即将推出DNN 5.0对XHTML的支持,在Host > Host Settings > Basic Settings > Host Details 多了一个 Fallback Doctype的选项
这其实就是选择如果皮肤本身不带Doctype系统默认的Doctype
- HTML4 (Legacy) ————– 如果你的系统里有很多遗留的HTML皮肤建议选择这项以防显示出问题
- XHTML 1.0 transitional ——— 如果是新装的系统建议选择这项,默认的皮肤使用XHTML
- XHTML 1.0 strict ————– 这项同样是XHTML但是语法的标准过于严格暂不推荐选择
我在写这篇blog的时候做了个测试, Fallback Doctype选择XHTML 1.0 transitional把没有定义doctype的皮肤的页面打开查看源代码果不其然 默认的Doctype已经是XHTML了, DotNetNuke又向网页标准化迈进了一步!



6 个评论 - " 如何制作支持XHTML的DotNetNuke皮肤 "
希望能提供直接使用.ascx文件制作皮肤的教程。
谢谢!
@zbr
.html制作的皮肤在安装的时候会转换成为系统可识别的ascx文件, 我过两天会整理篇 DotNetNuke 5.0系统中皮肤制作的教程, 5.0系统中皮肤系统增加了不少新元素。
你好,谢谢你的回答。
我提出这个问题的理由是为了避免写哪个xml文档的麻烦,直接使用vwd来制作皮肤。
希望能给出一套方法。
谢谢!
@zbr
在DNN5里,可以直接在html里用object标签加入皮肤控件,属性可以直接在里面描述不用附加xml, 月底前我把教程post出来
thanks 期待你的教程
皮肤制作一直很迷茫,期待
发表评论