经过我狂搜了一下, 发现目前只有CSSFriendly才能修复这个问题, CSS Friendly是一个非常不错的开源项目, 也是备受微软官方关注的, 他的主页是: http://www.codeplex.com/cssfriendly .
打开解决方案,查看SimpleMenu.aspx页面,发现唯一特别之处就是使用了一个CssSelectorClass="SimpleEntertainmentMenu" 来加载CSS样式.
大家可以看到这个模板中可以让ASP.NET中各种控件重新设定样式, 好了, 到这里我们已经基本了解了CSS Friendly的运作原理, 然后我们来将其移植到我们现有的项目中。
首先将APP_Browsers文件夹及其中的CSSFriendlyAdapters.browser文件移植到网站中,
然后将CSSFriendly.dll加入到项目引用中:
接着修改一些CSSFriendlyAdapters.browser中的内容, 由于我们这里只需要对MENU控件进行CSS样式的修改, 所以我们将Browser的内容去掉一些,
其实我们就在把ControlAdapters里面的东西移除了, 只留下Menu部分, 原因是如果将所有控件的CSS都重新定义, 工作量太大, 这样我们只要修改Menu的一些样式即可, 如果以后有时间再把其他的加上并且修改。
最后来修改Menu控件的代码, 加入CssSelectorClass="SimpleEntertainmentMenu" 这个属性:
然后拷贝SimpleMenu.css到自己项目中并按需修改。