﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Baldwin's DNN-Category-DNN皮肤设计</title>
    <description>关于DNN皮肤的设计实现,包括对DNN皮肤机制的优化及其Web 2.0下如何设计纯CSS的皮肤。。。</description>
    <link>http://www.dnnsun.com/Default.aspx?TabId=67&amp;rssid=1&amp;categoryid=3</link>
    <language>zh-CN</language>
    <managingEditor>dnnsun@gmail.com</managingEditor>
    <webMaster>dnnsun@gmail.com</webMaster>
    <pubDate>Fri, 12 Mar 2010 20:04:43 GMT</pubDate>
    <lastBuildDate>Fri, 12 Mar 2010 20:04:43 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>SunBlog RSS Generator Version 2.3.8.0</generator>
    <item>
      <title>黑暗的艺术: CSS Hack</title>
      <description>  &lt;h4&gt;何谓CSS hack ?&lt;/h4&gt;  &lt;p&gt;由于不同的浏览器，比如IE6,IE7,Mozilla Firefox等，对CSS的解析原理不一致导致生成的页面效果千差万别，此时我们需要生成不同的样式让其兼容不同的浏览器，并得到理想的效果。详细请看: &lt;a title="CSS filter" href="http://en.wikipedia.org/wiki/CSS_filter" rel="nofollow"&gt;http://en.wikipedia.org/wiki/CSS_filter&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;说到底就是利用浏览器某些bugs来做文章, 没有哪位UI设计者希望使用CSS Hack, 大家羞于表达自己曾用过Hack, 但是有时你不得不出卖自己的灵魂给Hack. 目前我们项目希望可以在大部分的浏览器上通过验证, 工作量可想而知, 就好比我这会的签名档是“在windows7上蹂躏IE6,是无奈也是悲哀啊&amp;quot;, 不管怎么样，总之本人的机器已经安装了5款浏览器，同时因为有些没法在windows7下安装，我们不得已独立一个额外的机器专门安装其他旧版本的浏览器， 蔚为壮观。正希望浏览器这个恶魔在娘胎里就是over了, 有点”矫枉过正“,:) 回归正题, 其实今天在此就想跟大家分享一些目前基本的CSS Hack, 至少对我们目前这个项目蛮管用的(日子还得一天一天过, 尽管牢骚不断, 呵呵)&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: green"&gt;/* Internet Explorer */
 
/* IE 6 only */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;body #ie6 &lt;/span&gt;{
     &lt;span style="color: red"&gt;_display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
}

&lt;span style="color: green"&gt;/*IE 6 and IE 7 */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;#ie6andie7 &lt;/span&gt;{
     *&lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
}

&lt;span style="color: green"&gt;/* IE 7 only */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;html &amp;gt; body #ie7 &lt;/span&gt;{
    *&lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
}

&lt;span style="color: green"&gt;/* IE 6, IE 7 and 8 */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;body #ie6andie7andie8&lt;/span&gt;{
    &lt;span style="color: red"&gt;display&lt;/span&gt;:&lt;span style="color: blue"&gt;block\9&lt;/span&gt;;
}   

&lt;span style="color: green"&gt;/* IE 8 only */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;body #ie8&lt;/span&gt;{
    &lt;span style="color: red"&gt;display&lt;/span&gt;:&lt;span style="color: blue"&gt;block\9&lt;/span&gt;;
    *&lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;none&lt;/span&gt;; &lt;span style="color: green"&gt;/*overrule for ie6 and ie7 which also read this rule*/
&lt;/span&gt;}

 
&lt;span style="color: green"&gt;/* Firefox */
 
/*Firefox 2 and 3 */
&lt;/span&gt;&lt;span style="color: #a31515"&gt;#firefox2&lt;/span&gt;, &lt;span style="color: #a31515"&gt;x:-moz-any-link &lt;/span&gt;{
    &lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
    *&lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;none&lt;/span&gt;; &lt;span style="color: green"&gt;/*overrule for ie6 and ie7 which also read this rule*/
&lt;/span&gt;}

&lt;span style="color: green"&gt;/*Firefox 3 only (for Firefox 2 only use the rule above and this to overwrite for Firefox 3*/
&lt;/span&gt;&lt;span style="color: #a31515"&gt;#firefox3&lt;/span&gt;, &lt;span style="color: #a31515"&gt;x:-moz-any-link&lt;/span&gt;, &lt;span style="color: #a31515"&gt;x:default &lt;/span&gt;{
    &lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
    *&lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;none&lt;/span&gt;; &lt;span style="color: green"&gt;/*overrule for ie6 and ie7 which also read this rule*/
&lt;/span&gt;}
  
&lt;span style="color: green"&gt;/* Safari */
&lt;/span&gt;&lt;span style="color: blue"&gt;@media &lt;/span&gt;screen and (-webkit-min-device-pixel-ratio:0) {
    &lt;span style="color: #a31515"&gt;#safari &lt;/span&gt;{
        &lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
    }
}
    
&lt;span style="color: green"&gt;/* Opera */
&lt;/span&gt;&lt;span style="color: blue"&gt;@media &lt;/span&gt;all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {
    &lt;span style="color: #a31515"&gt;head~body #opera &lt;/span&gt;{
        &lt;span style="color: red"&gt;display&lt;/span&gt;: &lt;span style="color: blue"&gt;block&lt;/span&gt;;
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;最后喊一下口号: 尽量做到符合W3C标准, 不得已才Hack, 并尽可能用简便灵活的方案. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;相关链接:&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a title="http://www.cnblogs.com/huangjianhuakarl/archive/2009/07/22/1528744.html" href="http://www.cnblogs.com/huangjianhuakarl/archive/2009/07/22/1528744.html"&gt;http://www.cnblogs.com/huangjianhuakarl/archive/2009/07/22/1528744.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a title="http://lifesinger.org/blog/2009/06/goodbye-to-css-hack/" href="http://lifesinger.org/blog/2009/06/goodbye-to-css-hack/"&gt;http://lifesinger.org/blog/2009/06/goodbye-to-css-hack/&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/103/The-dark-art-of-CSS-Hacks.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/17/default.aspx">Asp.Net MVC</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/103/The-dark-art-of-CSS-Hacks.aspx</guid>
      <pubDate>Wed, 22 Jul 2009 10:32:14 GMT</pubDate>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=103</trackback:ping>
    </item>
    <item>
      <title>拥抱PNG(如何在DNN应用PNG格式图象)</title>
      <description>&lt;div&gt;&lt;img width="128" height="128" border="0" align="left" alt="png demo" src="http://www.dnnsun.com/Portals/0/Blog/png.gif" /&gt;PNG 是20世纪90年代中期开始开发的图像文件存储格式，其目的是企图替代GIF和TIFF文件格式，同时增加一些GIF文件格式所不具备的特性。流式网络图 形格式(Portable Network Graphic Format，PNG)这一名称来源于非官方的“PNG's Not GIF”，是一种位图文件(bitmap file)存储格式，读成“ping”。PNG用来存储灰度图像时，灰度图像的深度可多到16位，存储彩色图像时，彩色图像的深度可多到48位，并且还可 存储多到16位的α通道数据.&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/46/How-to-apply-the-png-format-pictures-in-DNN.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/7/default.aspx">杂项</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/46/How-to-apply-the-png-format-pictures-in-DNN.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/46/How-to-apply-the-png-format-pictures-in-DNN.aspx</guid>
      <pubDate>Sat, 28 Jun 2008 10:19:16 GMT</pubDate>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=46</trackback:ping>
    </item>
    <item>
      <title>展望DNN皮肤前景及其推荐一些皮肤资源</title>
      <description>自从DNN发布以来，用户对DNN皮肤机制一直以来都是褒贬不一,我对此也曾写过一些文章分析其中道理,有兴趣者不妨看看我之前的文章,目前DNN即将升级到5.0版本(代号为Cambrian),这将是一个具有里程碑意义的版本发布,时间大概是今年秋天,估计应该是在DotNetNuke OpenForce '08 大会之前吧,让我们拭目以待吧. 关心DNN皮肤的朋友们, 现在让我们先来看看皮肤机制将发生哪些变化...</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/38/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/8/default.aspx">最新DNN资讯</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/38/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/38/Default.aspx</guid>
      <pubDate>Fri, 16 May 2008 05:16:02 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=38</trackback:ping>
    </item>
    <item>
      <title>DNN登陆注册链接小变身(Skin Object定制开发)</title>
      <description>&lt;div style="text-indent: 1em"&gt;上一篇文章简单解析了DNN多语言解决方案,其中提到了一个皮肤级别的本地化支持.这篇文章接着简单分析如何定制开发自己的皮肤对象(在dnn称之为Skin Objects),不妨来看看我们如何给DNN默认的登陆注册链接皮肤对象做个小变身.首先还是先描述一下需求,例如有客户需要在设计皮肤时可以在登陆注册这两个链接增加一个小图象提示,起到修饰美观的作用,最终效果如图:&lt;/div&gt;
&lt;div&gt;&lt;img height="37" alt="" width="236" border="0" src="http://www.dnnsun.com/Portals/0/Blog/login_skinobject.png" /&gt;&lt;/div&gt;
&lt;div&gt;如何开发呢?其实对我来说,开发DNN的原则就是如何节省代码量,同时可以让DNN物尽所用,但又不能影响以后的升级.我想这个理念在前几篇文章都阐述得淋漓尽致(比如&lt;a target="_blank" href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/BlogID/1/EntryID/24/Default.aspx"&gt;&lt;strong&gt;浅谈如何做到dnn物尽所用(二)&lt;/strong&gt;&lt;/a&gt;, &lt;a target="_blank" href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/BlogID/1/EntryID/22/Default.aspx"&gt;&lt;strong&gt;浅谈如何做到dnn物尽所用&lt;/strong&gt;&lt;/a&gt;).有兴趣者不妨回头看看,也许你也会得到些许提示的.回到正题,首先我想到就是利用原有的登陆注册这两个链接皮肤对象,再结合DNN自带的CommandButton(文章"&lt;a target="_blank" href="http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/BlogID/1/EntryID/25/Default.aspx"&gt;&lt;strong&gt;再谈dnn的物尽所用(三)&lt;/strong&gt;&lt;/a&gt;"对此有所解析)这一用户控件就可以实现我们的需求了.那我们就开始吧,还是我之前提到开发皮肤对象的步骤:&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;1) &lt;/strong&gt;在网站根目录下的admin/Skins文件夹里创建一个UserControl,比如现在新增dnnsunUser.ascx和dnnsunLogin.ascx(请注意该文件夹下的代码不需要重新编译,如果你是以站点形式发布的).&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;2)&lt;/strong&gt; 创建对应的资源文件(dnnsunUser.ascx.resx, dnnsunUser.ascx.zh-CN.resx及其dnnsunLogin.ascx.resx,ascx.resx, dnnsunLogin.ascx.zh-CN.resx)&lt;/div&gt;
&lt;div&gt;其中上述步骤你可以直接拷贝默认的登陆注册链接皮肤对象,然后重命名即可.接下来就是替代我们即将加入的CommandButton,在页面中注册并添加实例:&lt;/div&gt;
&lt;fieldset&gt;&lt;legend style="color: #000; text-indent: 0em"&gt;dnnsunLogin.ascx&lt;/legend&gt;
&lt;div style="margin: 5px"&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 9pt; background: yellow"&gt;&lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="dnn"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DotNetNuke"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DotNetNuke.UI.WebControls"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow"&gt;%&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 9pt; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;dnn&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;CommandButton&lt;/span&gt;&lt;span style="font-size: 9pt"&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;="cmdLogin"&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;="server"&lt;/span&gt; &lt;span style="color: red"&gt;CssClass&lt;/span&gt;&lt;span style="color: blue"&gt;="SkinObject"&lt;/span&gt; &lt;span style="color: red"&gt;CausesValidation&lt;/span&gt;&lt;span style="color: blue"&gt;="false"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/fieldset&gt;
&lt;div&gt;或&lt;/div&gt;
&lt;fieldset&gt;&lt;legend style="color: #000; text-indent: 0em"&gt;dnnsunUser.ascx&lt;/legend&gt;
&lt;div style="margin: 5px"&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 9pt; background: yellow"&gt;&lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="dnn"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DotNetNuke"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DotNetNuke.UI.WebControls"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow"&gt;%&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 9pt; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;dnn&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;CommandButton&lt;/span&gt;&lt;span style="font-size: 9pt"&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;="cmdRegister"&lt;/span&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;="server"&lt;/span&gt; &lt;span style="color: red"&gt;CssClass&lt;/span&gt;&lt;span style="color: blue"&gt;="SkinObject"&lt;/span&gt; &lt;span style="color: red"&gt;CausesValidation&lt;/span&gt;&lt;span style="color: blue"&gt;="false"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/fieldset&gt;
&lt;div&gt;接下来就是修改默认的属性及其Page_Load事件,以达到我们的需求,具体实现我就不细说,大家可以下载来看看,逻辑还是原来的逻辑,修改只是一些细微之处,需要注意的现在我们增加了一个属性ImageUrl以满足我们的需求.在该属性中你只要设置当前皮肤的图象路径,比如:&lt;/div&gt;
&lt;fieldset&gt;&lt;legend style="color: #000; text-indent: 0em"&gt;YourSkin.ascx&lt;/legend&gt;
&lt;div style="margin: 5px"&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 9pt; background: yellow"&gt;&lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="dnn"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DNNSUNLOGIN"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Src&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="~/Admin/Skins/dnnsunLogin.ascx"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow"&gt;%&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 9pt; background: yellow"&gt;&lt;%&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt; COLOR: blue"&gt;@&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9pt"&gt; &lt;SPAN style="COLOR: #a31515"&gt;Register&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="dnn"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;TagName&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="DNNSUNNAV"&lt;/SPAN&gt; &lt;SPAN style="COLOR: red"&gt;Src&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="~/Admin/Skins/dnnsunNav.ascx"&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND: yellow"&gt;%&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align="left"&gt;&lt;span style="font-size: 9pt; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;dnn&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;DNNSUNUSER&lt;/span&gt;&lt;span style="font-size: 9pt"&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;="server"&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;="dnnUSER"&lt;/span&gt; &lt;span style="color: red"&gt;ImageUrl&lt;/span&gt;&lt;span style="color: blue"&gt;="register.gif"/&amp;gt;&lt;/span&gt;&lt;span style="color: red"&gt;&amp;#160;&amp;#160;&lt;/span&gt;|&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 9pt; color: red"&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;dnn&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue"&gt;:&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515"&gt;DNNSUNLOGIN&lt;/span&gt;&lt;span style="font-size: 9pt"&gt; &lt;span style="color: red"&gt;runat&lt;/span&gt;&lt;span style="color: blue"&gt;="server"&lt;/span&gt; &lt;span style="color: red"&gt;ID&lt;/span&gt;&lt;span style="color: blue"&gt;="dnnLOGIN"&lt;/span&gt; &lt;span style="color: red"&gt;ImageUrl&lt;/span&gt;&lt;span style="color: blue"&gt;="login.gif"/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/fieldset&gt;
&lt;div&gt;回过头来看代码如何实现的,你会比较清晰思路,那就是在Page_Load中获取当前皮肤的目录然后合并文件路径,我想大家一看代码就一清二楚了:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div class="dp-highlighter" id="vb"&gt;
&lt;div class="bar"&gt;&amp;#160;&lt;/div&gt;
&lt;ol class="dp-vb"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="keyword"&gt;Not&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="keyword"&gt;String&lt;/span&gt;&lt;span&gt;.IsNullOrEmpty(ImageUrl)&amp;#160;&lt;/span&gt;&lt;span class="keyword"&gt;Then&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;cmdRegister.ImageUrl&amp;#160;=&amp;#160;PortalSettings.ActiveTab.SkinPath&amp;#160;&amp;amp;&amp;#160;ImageUrl &amp;#160;&amp;#160;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="alt"&gt;&lt;span class="keyword"&gt;End&lt;/span&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;span class="keyword"&gt;If&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;link href="/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/plugins/highlighter/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" rel="stylesheet" /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;需要注意的是资源文件定义的键值对,如果你需要定制自己的提示信息,不妨打开对应的资源文件修改其中的定义.比如:&lt;/div&gt;
&lt;div&gt;&lt;font color="#008080"&gt;&lt;strong&gt;WelcomeInfo.Text -- Welcome to dnnsun,{0}&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;你可以修改成:&lt;/div&gt;
&lt;div&gt;&lt;font color="#008080"&gt;&lt;strong&gt;WelcomeInfo.Text -- Hi,{0} you are login incurrently!&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;这些都是很方便的,^_^&lt;br /&gt;
最后一点需要提的是你可能需要在skin.css定义以下类似样式,让提示图片跟文字对齐:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div class="dp-highlighter" id="css"&gt;
&lt;div class="bar"&gt;&amp;#160;&lt;/div&gt;
&lt;ol class="dp-css"&gt;
    &lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;/*&amp;#160;For&amp;#160;The&amp;#160;Login&amp;#160;and&amp;#160;Register&amp;#160;Link&amp;#160;*/&lt;/span&gt;&lt;span&gt;&amp;#160;&amp;#160;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class=""&gt;&lt;span&gt;.SkinObject&amp;#160;input&amp;#160;{&lt;/span&gt;&lt;span class="keyword"&gt;vertical-align&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;span class="value"&gt;bottom&lt;/span&gt;&lt;span&gt;;}&amp;#160;&amp;#160;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;就像我之前文章提到那样,定制开发自己的皮肤对象最大的优势就是满足定制的需求和支持本地化.这两个控件当然也不例外,本网站就是应用这些控件部分实现了多语言机制!&lt;br /&gt;
你可以从这里获取到这些皮肤对象,&lt;a target="_blank" href="http://www.dnnsun.com/Portals/0/Download/dnnsunLoginAndUser_SkinObjects.zip"&gt;&lt;img height="46" alt="" width="38" align="absBottom" border="0" src="http://www.dnnsun.com/Portals/0/Blog/Downloaded.gif" /&gt; &lt;font color="#800000" size="3"&gt;dnnsunUser and dnnsunLogin Skin-Objects&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
安装步骤如下:&lt;br /&gt;
&lt;strong&gt;1) &amp;#160;&lt;/strong&gt;解压缩zip文件,拷贝dnnsunUser.ascx,dnnsunUser.ascx.vb,dnnsunUser.xml和dnnsunLogin.ascx,dnnsunLogin.ascx.vb,dnnsunLogin.xml到站点根目录下的admin/Skins&lt;br /&gt;
&lt;strong&gt;2)&amp;#160;&lt;/strong&gt; 拷贝dnnsunLogin.ascx.resx,dnnsunLogin.ascx.zh-CN.resx和dnnsunLogin.ascx.resx,dnnsunLogin.ascx.zh-CN.resx到站点根目录下的admin/Skins/App_LocalResources&lt;br /&gt;
使用方法上边已提到,在此就不再累赘了.&lt;/div&gt;
&lt;div&gt;&lt;font color="#339966"&gt;&lt;strong&gt;相关链接:&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color="#339966"&gt;&lt;strong&gt;&lt;a target="_blank" href="http://seablick.com/blog/articletype/articleview/articleid/92.aspx"&gt;Fixing the DNN Breadcrumb Skin Object&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/37/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/4/default.aspx">解析DNN代码</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/37/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/37/Default.aspx</guid>
      <pubDate>Thu, 15 May 2008 09:50:01 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=37</trackback:ping>
    </item>
    <item>
      <title>你需要么,dnn多语言解决方案?</title>
      <description>&lt;DIV style="TEXT-INDENT: 1em"&gt;目前dnn多语言解决方案是我这段时间研究的重点, 我接下来也许会写几篇相关文章阐述这些问题.&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 1em"&gt;切入正题, 本地化是ASP.NET的特性, 无疑dnn也会直接支持, 但是事实上并不是很乐观, 因为dnn本身也只是在表面上作些文章吧了, 如果你想利用dnn实现多语言门户(Portals), 那你可能想错了, 除非你重新开发或在模块级别上定制的开发支持多语言. 那dnn究竟支持多语言到何种程度呢? 让我慢慢道来, 其实dnn默认支持的多语言只局限于页面标签(Tags,Token etc), 比如登陆链接, 编辑模块时的字段Label等等, 而这些并非我们通常理解的内容本地化(多语言支持). 当然你可以通过下列两种解决方案来实现:&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;1) 模块级别的多语言开发,但你的内容可能需要存储好几个版本(根据你站点支持的语言总数)&lt;BR&gt;   2) 站点级别的多语言开发,也就是你需要发布好几个站点(根据你需要支持的语言总数)&lt;/STRONG&gt;&lt;BR&gt;目前在DNN模块市场也有一些模块按照第一种思路做到了内容上支持多语言,比如:&lt;BR&gt;&lt;FONT color=#000000&gt;1) MLSkinHelper, PageLocalization Module,Language Selector skin object 等等&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.apollo-software.nl/Home/tabid/36/language/en-US/Default.aspx"&gt;http://www.apollo-software.nl/Home/tabid/36/language/en-US/Default.aspx&lt;/A&gt;&lt;BR&gt;最经典的范例就是&lt;A href="http://declic-video-fx.com/"&gt;http://declic-video-fx.com/&lt;/A&gt;,它利用apollo-software相关模块实现了多语言站点,可以说基本上实现了多语言支持的所有功能.&lt;BR&gt;&lt;FONT color=#000000&gt;2) Localization Extensions: Easily implement multilingual portals &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://www.adequation-dotnetnuke.com/en/AboutUs.aspx"&gt;http://www.adequation-dotnetnuke.com/en/AboutUs.aspx&lt;/A&gt;&lt;BR&gt;该站点的公司主页就是利用来实现了多语言支持,请访问&lt;A href="http://www.adequation-informatique.com/en/Home.aspx"&gt;http://www.adequation-informatique.com/en/Home.aspx&lt;/A&gt;&lt;BR&gt;&lt;FONT color=#ff6600&gt;&lt;FONT color=#000000&gt;3) 这是一个免费的模块Magic Content,同时也是DNN Forget下的一个新模块,该模块属于proeder.network.consult公司.&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;Magic Content is a multi-lingual content publishing module for the DotNetNuke plattform that can be used as a replacement for the current Text/HTML module. It's very easy to use and extends content publishing by many useful features. * one edit tab for each portal locale * advanced edit tab for role based content management * newsletter tab for sending content out via e-mail * replacement token tab.&lt;BR&gt;&lt;A href="http://www.codeplex.com/MagicContent"&gt;http://www.codeplex.com/MagicContent&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.portalfabrik.net/"&gt;http://www.portalfabrik.net/&lt;/A&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;相关链接:&lt;BR&gt;&lt;/FONT&gt;How to localization with dnnMenu or solpartMenu?&lt;BR&gt;&lt;A href="http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/76/threadid/224072/scope/posts/Default.aspx"&gt;http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/76/threadid/224072/scope/posts/Default.aspx&lt;/A&gt;&lt;BR&gt;how to localization in skin?&lt;BR&gt;&lt;A href="http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/109/threadid/222245/scope/posts/Default.aspx"&gt;http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/109/threadid/222245/scope/posts/Default.aspx&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 1em"&gt;在此我不就以上话题详细阐述如何开发多语言模块等等细节问题, 以后也许有机会我会讲解一些模块的开发经验等等, 现在我只是简单说明一个相关的问题, 就是皮肤级别上的多语言支持. 比如说我有一个需求,客户需要在某个皮肤添加说明性文字或提示, 类似于 当前位置:首页/新闻中心/某某新闻, 这"当前位置"需要进行本地化, 例如You Are Here:(English version), 当前位置(Chinese version). 我们该如何解决这一问题, 目前dnn没有在皮肤上支持本地化,但在皮肤控件上是支持的. 我曾在论坛逛了一些时候,发现dnn牛人Sebastian Leupold说:&lt;BR&gt;&lt;EM&gt;&lt;FONT color=#800000&gt;DNN 5 will allow for more flexibility using the [Text] skin object, which supports core token replace, which gives you more flexibility and a bunch of  additional tokens and formatting options.&lt;/FONT&gt;&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 1em"&gt;好吧,那我们就先来尝个新鲜,自己定制一个简单的皮肤本地化控件WindyText.首先需要在网站根目录下的admin/Skins文件夹里创建一个UserControl(请注意该文件夹下的代码不需要重新编译,如果你是以站点形式发布的),该控件只有三个属性(DefaultValue,CssClass和LocalizationKey),CssClass自然不需要解释了,就是定义该皮肤对象的样式,而LocalizationKey也表示你需要显示说明性文字或提示对应在资源文件的键值,如果你曾经开发过模块,应该很清楚,最后DefaultValue则是默认显示信息,为了防止资源文件里没有定义键值对.比如你设置LocalizationKey="AA",那么你对应的资源文件(WindyText.ascx.resx或WindyText.ascx.zh-CN.resx)里边就应该有一组键值对AA.Text = "你需要显示的说明性文字或提示".代码实现其实很简单,其实就是定制开发皮肤对象(Skin Object)的过程,比如说你必须继承SkinObjectBase等等:&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV class=dp-highlighter id=vb&gt;
&lt;DIV class=bar&gt; &lt;/DIV&gt;
&lt;OL class=dp-vb&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#Region "Public Members" &lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Public&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;&lt;SPAN&gt; DefaultValue() &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Return&lt;/SPAN&gt;&lt;SPAN&gt; _DefaultValue   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;ByVal&lt;/SPAN&gt;&lt;SPAN&gt; Value &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;)   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;                _DefaultValue = Value   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Public&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;&lt;SPAN&gt; LocalizationKey() &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;                &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Return&lt;/SPAN&gt;&lt;SPAN&gt; _LocalizationKey   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;ByVal&lt;/SPAN&gt;&lt;SPAN&gt; Value &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;)   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                _LocalizationKey = Value   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Public&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;&lt;SPAN&gt; CssClass() &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Return&lt;/SPAN&gt;&lt;SPAN&gt; _cssClass   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Get&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;ByVal&lt;/SPAN&gt;&lt;SPAN&gt; Value &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;)   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;                _cssClass = Value   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Set&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Property&lt;/SPAN&gt;  
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#End Region &lt;/SPAN&gt; &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt; &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#Region " Event Handlers " &lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Private&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Sub&lt;/SPAN&gt;&lt;SPAN&gt; Page_Load(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;ByVal&lt;/SPAN&gt;&lt;SPAN&gt; sender &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; System.&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Object&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;ByVal&lt;/SPAN&gt;&lt;SPAN&gt; e &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; System.EventArgs) &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Handles&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;MyBase&lt;/SPAN&gt;&lt;SPAN&gt;.Load   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;If&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Not&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;.IsNullOrEmpty(LocalizationKey) &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Then&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;                &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Dim&lt;/SPAN&gt;&lt;SPAN&gt; localizationString &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;As&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt; = Localization.GetString(LocalizationKey, Localization.GetResourceFile(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Me&lt;/SPAN&gt;&lt;SPAN&gt;, MyFileName))   &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                lblLocalization.Text = IIF(&lt;/SPAN&gt;&lt;SPAN class=keyword&gt;String&lt;/SPAN&gt;&lt;SPAN&gt;.IsNullOrEmpty(localizationString),DefaultValue,localizationString)   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;If&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;If&lt;/SPAN&gt;&lt;SPAN&gt; CssClass &lt;&gt; &lt;/SPAN&gt;&lt;SPAN class=string&gt;""&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Then&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                lblLocalization.CssClass = CssClass   &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Else&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;                lblLocalization.CssClass = &lt;/SPAN&gt;&lt;SPAN class=string&gt;"Normal"&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN&gt;            &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;If&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;        &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;End&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=keyword&gt;Sub&lt;/SPAN&gt;  
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=preprocessor&gt;#End Region&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;LINK href="/Providers/HtmlEditorProviders/Fck/FCKeditor/editor/plugins/highlighter/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type=text/css rel=stylesheet&gt;&lt;/DIV&gt;      我已把WindyText皮肤对象打包一下,你可以&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;A href="http://www.dnnsun.com/Portals/0/Download/WindyText.zip" target=_blank&gt;从此下载&lt;/A&gt;&lt;/FONT&gt;&lt;/STRONG&gt;.安装步骤如下:&lt;BR&gt;     1) 解压缩zip文件,拷贝WindyText.ascx,WindyText.ascx.vb,WindyText.xml到站点根目录下的admin/Skins&lt;BR&gt;     2) 拷贝WindyText.ascx.resx,WindyText.ascx.zh-CN.resx到站点根目录下的admin/Skins/App_LocalResources&lt;BR&gt;那我们该如何使用WindyText呢,首先你需要在页面注册一下,操作类似其他皮肤控件那样:&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV class=dp-highlighter id=xml&gt;
&lt;DIV class=bar&gt; &lt;/DIV&gt;
&lt;OL class=dp-xml&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=tag&gt;&lt;&lt;/SPAN&gt;&lt;SPAN&gt;%@ Register &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"dnn"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;TagName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"WINDYTEXT"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;Src&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"~/Admin/Skins/WindyText.ascx"&lt;/SPAN&gt;&lt;SPAN&gt; %&lt;/SPAN&gt;&lt;SPAN class=tag&gt;&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;然后你就可以直接使用WindyText了,例如:&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV class=dp-highlighter id=xml&gt;
&lt;DIV class=bar&gt; &lt;/DIV&gt;
&lt;OL class=dp-xml&gt;
&lt;LI class=alt&gt;&lt;SPAN&gt;&lt;SPAN class=tag&gt;&lt;&lt;/SPAN&gt;&lt;SPAN class=tag-name&gt;div&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;class&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"siteBreadCrumb"&lt;/SPAN&gt;&lt;SPAN class=tag&gt;&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN&gt;    &lt;/SPAN&gt;&lt;SPAN class=tag&gt;&lt;&lt;/SPAN&gt;&lt;SPAN class=tag-name&gt;dnn:WINDYTEXT&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;ID&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"lblbreadcrumbTip"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;LocalizationKey&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"breadcrumbTip"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;runat&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"server"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=tag&gt;/&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt; 
&lt;LI class=""&gt;&lt;SPAN class=tag&gt;    &lt;&lt;/SPAN&gt;&lt;SPAN class=tag-name&gt;dnn:BREADCRUMB&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;runat&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"server"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;ID&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"dnnBreadCrumb"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;Separator&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;" / "&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=attribute&gt;RootLevel&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN class=attribute-value&gt;"0"&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;SPAN class=tag&gt;/&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt; 
&lt;LI class=alt&gt;&lt;SPAN class=tag&gt;&lt;SPAN class=tag-name&gt;div&lt;/SPAN&gt;&lt;SPAN class=tag&gt;&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &lt;/SPAN&gt;&lt;/SPAN&gt; &lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;请注意你需要在资源文件里定义对应键值,比如现在我设置的是breadcrumbTip.Text = "You Are Here:"(WindyText.ascx.resx版本)和breadcrumbTip.Text = "当前位置:"(WindyText.ascx.zh-CN.resx版本).到此你就大功告成了.目前&lt;A href="http://www.dnnsun.com"&gt;http://www.dnnsun.com&lt;/A&gt;就是利用WindyText这一皮肤控件实现的,这一控件还要其他很有用的功能,以后有机会将继续扩展一些更强大的功能. ^_^&lt;/DIV&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/36/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/36/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/36/Default.aspx</guid>
      <pubDate>Tue, 13 May 2008 06:19:57 GMT</pubDate>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=36</trackback:ping>
    </item>
    <item>
      <title>NUS项目告一段落</title>
      <description>&lt;p&gt;最近加班加点,终于在10天之内把客户这一网站给整出来,真是不容易啊,在此弄个截图以资鼓励我们团队的斗志, :)&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://comwerks-creative.com/nus/"&gt;&lt;img align="middle" border="0" alt="" src="http://www.dnnsun.com/Portals/0/Blog/nus.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/23/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/2/default.aspx">DNN模块开发</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/12/default.aspx">站点更新</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/23/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/23/Default.aspx</guid>
      <pubDate>Fri, 28 Mar 2008 09:26:47 GMT</pubDate>
      <slash:comments>12</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=23</trackback:ping>
    </item>
    <item>
      <title>加速DNN的新举措</title>
      <description>&lt;div&gt;在优化DNN的过程中我们可能注意到这一点, 就是我们的皮肤文件一般都写在同一个文件，可能是skin.css或container.css, 也就是说不论我们页面加载是否应用到该样式文件里边的所有属性，我们总会必须加载这样一个CSS样式文件，尽管皮肤有很多属性并不是我们所需要的，但有时我们所创建的皮肤可能会包含好些个类别的skin(也就是我们通常提到的主题theme), 比如专为首页显示的xx_Home.ascx, 专为管理页面的xx_admin.ascx, 一般的xx_skin.ascx等等, 显然这些页面可能是不同的布局设计, 不同的样式定义, 如果这些不同的样式都在一个skin.css里定义的话, 那肯定导致该文件冗赘, 并且不能达到不同的样式的目的(前提是你使用同样的class样式定义). 今天准备在此分享一个针对此类问题的解决方案, 简约而实用, 采用此方案将不会造成数据加载的不必要负荷, 提高页面的加载速度, 从而达到我们加速DNN的目的。&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/16/How-To-Speed-Up-Your-DNN-Website.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/16/How-To-Speed-Up-Your-DNN-Website.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/16/How-To-Speed-Up-Your-DNN-Website.aspx</guid>
      <pubDate>Sat, 27 Oct 2007 12:03:59 GMT</pubDate>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=16</trackback:ping>
    </item>
    <item>
      <title>解析DNN皮肤级别的doctype声明</title>
      <description>自从DNN 4.4版本开始, DNN主要的重心转移到性能和优化方面,由此引入了一系列的优化措施和功能的改进, 如今的DNN已是今非昔比。而在跟Web标准的靠拢方面，DNN也做出了一定的努力，比如这篇文章即将提到doctype的概念, 在文章中将详细说明DNN中doctype的用途及其优势,以此对应的优化等等。</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/15/Default.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/4/default.aspx">解析DNN代码</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/5/default.aspx">优化DNN</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/15/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/15/Default.aspx</guid>
      <pubDate>Sat, 20 Oct 2007 04:57:51 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=15</trackback:ping>
    </item>
    <item>
      <title>DNN Style Sheet简要总结</title>
      <description>&lt;DIV style="TEXT-INDENT: 2em"&gt;在上一篇文章&lt;A href="http://www.dnnsun.com/Blog/tabid/67/EntryID/8/Default.aspx" target=_blank&gt;DNN默认核心CSS继承关系解析&lt;/A&gt;,我曾简要分析了DotNetNuke的样式继承关系,在此我再对此作些补充，算是做些总结。&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;SPAN title="" style="DISPLAY: inline-block; FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/Portals/0/Blog/CSSEdit.png', sizingMethod='image'); FLOAT: right; WIDTH: 128px; HEIGHT: 128px"&gt;&lt;/SPAN&gt;是的，DNN是通过外部样式表来规划页面布局和交互界面设计的，其途径就是把所有样式文件拆分到不同的,具体的样式单(比如skin.css,portal.css)，而在页面的加载时是按照一定的优先级顺序来界定的，从而达到后一样式表能够覆盖前一样式的作用，实现我们所熟悉的CSS样式继承关系。其优先级排列如下（靠后者可覆盖前者的样式）:&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;1) &lt;/STRONG&gt;Modules&lt;STRONG&gt; – &lt;/STRONG&gt;模块控件样式，一般定义为module.css,可选项。&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;2) &lt;/STRONG&gt;Default&lt;STRONG&gt; –&lt;/STRONG&gt; 默认网站主机样式(default.css)&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;3) &lt;/STRONG&gt;Skin&lt;STRONG&gt; –&lt;/STRONG&gt; 皮肤样式，可取名为skin.css 或 skinfilename.css&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;4) &lt;/STRONG&gt;Container&lt;STRONG&gt; –&lt;/STRONG&gt;容器皮肤样式，可取名为container.css 或 containerfilename.css.&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;5) &lt;/STRONG&gt;Portal&lt;STRONG&gt; –&lt;/STRONG&gt;自定义网站管理级别的样式，这是最后一级的样式定义，一般为空定义(portal.css)&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;具体对这些样式的解析请查看我上一篇文章，而以下相关链接则是解析了一下如何在DNN合适使用CSS样式，在哪些地方是最安全的（升级时不受影响等），哪些地方是最有效的等的运用，有兴趣者不妨看看。&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;STRONG&gt;相关链接:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;&lt;A href="http://www.inventua.com/blogs.content?EntryID=6" target=_blank&gt;CSS files in DotNetNuke: Which CSS file should I use?&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="TEXT-INDENT: 2em"&gt;同时在此推荐一本DNN Skin-Design参考手册,它主要介绍了skin的制作及其所有skin占位符的解析和用户，其中包括SolpartMenu的所有属性设置的参考，是一本不可多得的skin资源手册,如果你想设计自己的skin，如果你想把自己的网站绚起来，那么你不妨拿着这本参考手册照猫画虎一般，最终你会发现其实DNN Skin是如此简单…. Enjoy!&lt;A href="http://www.dnnsun.com/免费资源下载/tabid/59/Default.aspx" target=_blank&gt;下载地址&lt;/A&gt;&lt;/DIV&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/10/Basic-Usage-of-DNN-Style-Sheet.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/6/default.aspx">DNN使用及思考</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/4/default.aspx">解析DNN代码</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/10/Basic-Usage-of-DNN-Style-Sheet.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/10/Basic-Usage-of-DNN-Style-Sheet.aspx</guid>
      <pubDate>Sun, 07 Oct 2007 08:38:09 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=10</trackback:ping>
    </item>
    <item>
      <title>DNN默认核心CSS继承关系解析</title>
      <description>&lt;div&gt;在DNN里,因为存在皮肤主题及插件模块的概念,故而衍生出一系列的产物,比如Tab Skin(页面皮肤), Container Skin(容器皮肤), Module Template(模块模版)等等,而这一切都是DNN布局显示所需要的.那DNN是如何处理这些文件所包含的样式？&lt;/div&gt;</description>
      <link>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/8/The-default-CSS-hierarchy-relationship-in-DotNetNuke.aspx</link>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/3/default.aspx">DNN皮肤设计</category>
      <category domain="http://www.dnnsun.com/community/baldwinsblog/tabid/67/categoryid/4/default.aspx">解析DNN代码</category>
      <author>dnnsun@gmail.com</author>
      <comments>http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/8/The-default-CSS-hierarchy-relationship-in-DotNetNuke.aspx#Comments</comments>
      <guid isPermaLink="true">http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/entryid/8/The-default-CSS-hierarchy-relationship-in-DotNetNuke.aspx</guid>
      <pubDate>Fri, 21 Sep 2007 02:53:38 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.dnnsun.com/DesktopModules/SunBlog/Trackback.aspx?id=8</trackback:ping>
    </item>
  </channel>
</rss>