2

如何在运行时更改 css 属性值,例如所有 h1 color="blue" 和 all p color="green"。如果有人知道,请帮助我!

4

4 回答 4

7

很简单(我假设你想做这个服务器端)- 将标题声明为 runat=server 并给它一个 id:

<h1 runat="server" id="someHeading">Blah</h1>

然后你可以在后面的代码中以编程方式操作它,如下所示:

someHeading.Style.Add("color", "blue");

这将呈现以下 HTML:

<h1 id="someHeading" style="color:blue;">Blah</h1>

您可能希望这样做不同并在样式表中定义样式并在运行时动态更改类。

更新 - 当您动态更改它时,以下可能更合适:

someHeading.Style["color"] = "red";

我相信其他人会发布如何在客户端进行操作的答案。:-)

查看服务器端的另一个(也许更好)选项是使用皮肤和主题。阅读有关这些的ASP.NET 常见问题解答以了解更多信息。

于 2009-07-15T07:49:46.550 回答
1

请尝试下面的代码,我会为你工作:

someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
于 2011-11-17T06:14:30.280 回答
1

在 JQuery 中,您可以简单地使用

$('h1').css("color","blue");

ASP.Net 代码隐藏没有选择器来将 css 应用于多个 html 标记,因为 HTML 仅在大多数代码执行后生成。这发生在 Page_PreRender 事件中。

您可以做的是获取呈现的 html 并执行一些搜索和/或修改,无论是使用正则表达式还是普通搜索替换。

我建议您使用 javascript 来执行此操作,因为在 Page_PreRender 事件中修改呈现的 html 肯定会在以后给您带来问题并且基本上没有完成。

于 2009-07-15T08:05:00.620 回答
0

我相信他对页面上的每一项都是有意义的。我建议在当前样式表之后在标题中添加文字,然后使用以下代码添加内联样式:

<asp:Literal ID="litInlineStyles" runat="server" EnableViewState="false" Visible="false">
  <style type="text/css">
  h1 
  {
    color: {h1Colour}
  }
  p
  {
    color: {pColour}
  }
  </style>
</asp:Literal>

我故意禁用了视图状态和可见性,因此您必须在每次页面加载时声明要替换 {h1Colour} 和 {pColour} 的内容,并将文字设置为可见。

这应该有助于为您指明正确的方向。

于 2009-07-15T08:39:21.160 回答