如何为 ASP.NET Ajax 重用来自 Telerik RadControls 的 css 样式
Posted
技术标签:
【中文标题】如何为 ASP.NET Ajax 重用来自 Telerik RadControls 的 css 样式【英文标题】:How to reuse css styles from Telerik RadControls for ASP.NET Ajax 【发布时间】:2010-11-27 17:32:08 【问题描述】:Telerik RadControls 内置了对皮肤的支持,并使用 CSS 来设置所有控件的样式。但是,当将这些控件插入现有网站时,将现有网站的样式与 RadControls 自己的样式合并的最佳方法是什么?
更新:鉴于以下选项(感谢 Zhaph):
-
将 RadControl 的 CSS 添加到我的网站
让 RadControl 看起来更像我的网站
将我的网站 CSS 选择添加到 RadControl 样式列表
最好的选择是什么?
选项 2 将要求我保持两组样式。 所以最好是选项 1。这将允许在整个站点重用 RadControls 样式系统,例如按钮和简单的控件看起来一样。
更新 2(从我的回答中移出): 我最终做了一个组合。使用 the FormDecorator 可以在我自己的按钮和输入上重用 RadControls 样式。此外,将 Telerik 提供的皮肤复制到我的 ASP.Net 主题中可以自定义皮肤。
【问题讨论】:
您的意思是如何将 RadControl 的 CSS 添加到您的站点,或者如何使 RadControl 看起来更像您的站点,或者如何将您的站点 CSS 选择添加到 RadControl 样式列表? 哪个最简单。我知道 RC 可以被设计成看起来像我的网站,但接下来我必须保持两组样式。 【参考方案1】:我不得不承认,我已经有一段时间没有使用 RadControls 了 - 我们在一些 CMS 网站上使用了 CMS RadEditor,它可以自动获取您的样式表,并将类添加到它的列表中,或者您可以手动添加一些。
查看文档,有些内容可能会有所帮助:
-
RadEditor CSS Classes and Their Use - 虽然这些通常是由我认为的控件自动添加的?
1. 的链接还告诉您如何执行此操作
几个选项
External CSS Files,声明“默认情况下,RadEditor for ASP.NET AJAX 使用当前页面中可用的 CSS 类”,但也显示了如何加载其他样式表。
Using the ToolsFile.xml - 向下滚动到
【讨论】:
【参考方案2】:作为此线程的更新,现在有一个用于 Telerik AJAX 和 MVC 工具的在线“样式生成器”,可以对内置皮肤进行可视化配置/自定义:
http://stylebuilder.telerik.com/
此工具无需了解每个控件的 CSS 类定义,让您可以轻松自定义其中一个内置主题以更好地匹配您的网站。
【讨论】:
不是问题的答案【参考方案3】:我只是想补充一下; FormDecorator 仅将 css 应用于某些类型的控件。如果你有一个没有样式的控件,你可以像这样访问 Telerik 资源:
.cs 文件 - 具有如下公共属性:
public string HeaderDivBackgroundURL
get
string backgroundURL = string.Empty;
string skin = ((MainMaster)Page.Master).AppSkin;
backgroundURL = Page.ClientScript.GetWebResourceUrl(typeof(RadSplitter), "Telerik.Web.UI.Skins." + skin + ".Splitter.slideTitleContainerBgr.gif");
return backgroundURL;
在 aspx 页面中(在 RadCodeBlock 中),只有一个内部样式表可以从该属性中读取:
<tel:RadCodeBlock runat="server">
<style type="text/css">
.telerikBackgroundMock
background: url('<%= HeaderDivBackgroundURL %>') repeat-x;
</style>
</tel:RadCodeBlock>
我发现这对于将 Telerik 皮肤应用到非 Telerik 控件非常有用,这种方式仍然是动态的,并且会随着皮肤的任何变化而变化。
【讨论】:
以上是关于如何为 ASP.NET Ajax 重用来自 Telerik RadControls 的 css 样式的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ASP.net UserControl 指定命名空间?