是否存在封装CSS选项的现有.net类

时间:2009-06-13 03:51:09

标签: .net css

是否已存在已通过css封装所有/大多数可用选项的.net类(或可用类)?

即: MyStyleClass msc = new MyStyleClass(); msc.font-family =“arial”;

我正在寻找一个暴露这些属性的现有类,没有样式(“font-family”)=“arial”;

我在搜索现有的.net框架时没有看到任何内容,但我可能不会寻找合适的东西。

为什么呢?我需要这个功能,并计划从类中设置的属性创建实际的.css,我不想重新发明轮子。

: - )


更新

感谢您的答案到目前为止,但我的目标不是要创建这个类 - 我希望有一个内置的一个或第三方(免费)的属性,枚举等已经暴露所以我可以声明对象并开始使用它。如果需要我会创建它,只是不想重新发明轮子: - )

6 个答案:

答案 0 :(得分:2)

这种设计违反了CSS的全部原因 - 从表示中分离代码和结构。设计一个CSS生成.net类失败了CSS的全部原因,即允许图形设计师在不知道底层代码的情况下重新设计网站。

正确的解决方案是在要提供特定样式的元素上输出类名,然后将样式规则放在纯CSS文件中。它可能不是你想要的答案,但它仍然是正确的答案。

编辑:误解了这个问题(见评论)。对于客户端解析,请尝试包装像libCSS这样的C库。

答案 1 :(得分:0)

一种可能性是使用词典,即:

Dictionary<string, string> msc = new Dictionary<string, string>();
msc["font-family"] = "arial";

答案 2 :(得分:0)

你必须做某种映射才能实现这一点。

存在一个类(System.Web.UI.WebControls.Style),它公开包括Font在内的基本属性(其中Names作为可以接受字体名称的属性)

编辑:看看CSSStyleCollection.Add method是否有帮助。

答案 3 :(得分:0)

  

是否存在.net类(或   可用的一个)已经   封装所有/大多数选项   通过css?

在您的问题“全部/大部分”的背景下,不会是答案。我假设您想要一些智能地知道这个特殊类附加到哪种HTML标记的东西,并提供所有相关的CSS选择器/规则与gets / sets并适当地写入它们?然而,对于第三方产品来说,这不是一个坏主意。

如果你正在寻找更简单的东西,那就不会明智地知道它是关联的html但是还有所有/大多数CSS选择器,它们也不存在,你必须使用像shahkalpesh建议的CSSStyleCollection.Add自己动手

答案 4 :(得分:0)

是的,您可以使用大多数显示对象的样式属性, HtmlTextWriterStyle 的枚举是您对应的css属性:

HyperLink hl = new HyperLink() { Text = "StackOverFlow", NavigateUrl = "http://stackoverflow.com" };
hl.Style.Add(HtmlTextWriterStyle.Color, "red");
hl.Style.Add(HtmlTextWriterStyle.FontWeight, "bold");

这会产生一个超链接并添加内嵌样式:“颜色:红色;字体 - 重量:粗体;”

答案 5 :(得分:0)

我已经在http://www.modeltext.com/css/

编写并发布了一个CSS解析器

其最低级别API的对象模型是样式表的一对一表示,基于CSS语法(请参阅ModelText.ModelCssInterfaces.Parsed命名空间)。

我的组件只支持阅读,而不是写作;但它是您可以实现的API /对象模型的一个很好的示例,您可以从中“从属性中创建实际的.css”。

还有W3C DOM API for CSS