【问题标题】:ASP.NET: Creating a CSS class programmaticallyASP.NET:以编程方式创建 CSS 类
【发布时间】:2017-04-24 01:25:38
【问题描述】:

我有一个 web 控件,我想在某些条件下修改 CSS 类。

理想情况下,我想写这样的东西:

myMenu.StaticMenuItemStyle.CssClass = (".bgColor", "{background:#ff0000}");

不幸的是,这是一个第三方控件,它不公开任何样式或属性属性。唯一暴露的属性是 CssClass。问题是十六进制颜色是从数据库中检索的,所以我不能在 css 文件中提前预定义它。

编辑:在 OnPreRender() 从数据库中获取 HEX 值之前,我不知道用于背景的 HEX 值。此时,我需要通过插入/更新背景的 HEX 值来创建/修改一个 css 类。

如何以编程方式创建和分配 css 类?

【问题讨论】:

  • 我们不能用 jquery 来做吗?
  • 没有。 Javascript 是的。
  • 您仍然可以使用 CSS 选择器来选择元素,即使它们没有分配特定的类。
  • 页面加载时在页头中写入css类并在此处使用
  • 页面加载时如何在页面头部写css类?换句话说,Page_Load ASP.NET 事件。

标签: c# css asp.net


【解决方案1】:

首先在页面标题中为您的控件和 Crete 样式表应用一个 css 类,如下所示

//// Create dynamic style rule which applies to the CSS class selector (".MyCssClass")
Style dynamicClassStyle = new Style();
dynamicClassStyle.BorderStyle = BorderStyle.Solid;
dynamicClassStyle.BorderColor = System.Drawing.Color.Black;
dynamicClassStyle.BorderWidth = new Unit(1);
dynamicClassStyle.BackColor = System.Drawing.Color.White;
Page.Header.StyleSheet.CreateStyleRule(dynamicClassStyle, null, ".MyCssClass");

全文here

【讨论】:

  • 谢谢。正是我想要的。
【解决方案2】:

有几种方法:

选项-1 保留所有可能的背景颜色的所有预定义 css 类,并根据 DB 十六进制值选择一个。

选项 2: 创建一个空的 CustomeStyle.css 文件。在您的网站中添加此 CSS 文件引用。 通过打开 customstyle.css 文件从 DB 中获取 hexcode 并编写一个 css 类。

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多