すべての h1 color="blue" およびすべての p color="green" のように、実行時に css 属性値を変更するにはどうすればよいですか。誰かがそれを知っているなら、私を助けてください!
4 に答える
非常に簡単です(このサーバー側で実行することを想定しています)-見出しを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";
他の誰かがクライアント側でそれを行う方法についての答えを投稿すると確信しています。:-)
サーバー側を調べるためのもう1つの(おそらくより良い)オプションは、スキンとテーマを使用することです。詳細については、これらに関するASP.NETFAQをお読みください。
JQueryでは、単に使用できます
$('h1').css("color","blue");
ASP.Net 分離コードには、複数の html タグに css を適用するためのセレクターがありません。これは、ほとんどのコードが実行された後にのみ HTML が生成されるためです。これは Page_PreRender イベントで発生します。
あなたができることは、レンダリングされたhtmlを取得し、正規表現または単純な検索置換を使用して、いくつかの検索または変更を実行することです.
Page_PreRender イベントでレンダリングされた html を変更すると、後で間違いなく問題が発生し、基本的には行われないため、javascript を使用してこれを行うことをお勧めします。
以下のコードを試してください、私はあなたのために働きます:
someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red");
私は彼がページ上のすべての項目に意味があると信じています. 現在のスタイルシートの直後にリテラルをヘッダーに追加し、次のコードでインライン スタイルを追加することをお勧めします。
<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} を置き換えるものを宣言し、リテラルを表示するように設定する必要があります。
それはあなたを正しい方向に向けるのに役立つはずです。