[英]Add/Modify CSS in a <style> tag on with jQuery/javascript
我想做的事:
我想用javascript / jQuery添加規則並修改<style>
標記內的現有規則。
為什么我要這樣做:
我基本上是構建一個配色方案編輯器,當用戶更改表單中的值時,我想更新CSS以反映這一變化。
我試過的:
用JS函數生成的CSS替換整個<style>
標記。 這可行但似乎很多處理只是一個非常小的變化。
此外,我可以創建包含特定CSS類的容器<div>
,只需查找/替換它們的HTML。 例如:
<div id="button_background_cont">
<style type="text/css">.buttons {background-color:#333333;}</style>
</div>
<div id="button_color_cont">
<style type="text/css">.buttons {color:#ffffff;}</style>
</div>
這些都有效...但是真的很笨重,我不是特別喜歡它們。
我需要做的例子:
<style type="text/css" id="color_scheme">
.buttons {background:#333333; color:#ffffff;}
</style>
<input name="button_background" id="button_background" value="#333333" />
<input name="button_color" id="button_color" value="#ffffff" />
更改表單元素並使其如下所示
<style type="text/css" id="color_scheme">
.buttons {background:#ff0000; color:#333333;}
</style>
<input name="button_background" id="button_background" value="#ff0000" />
<input name="button_color" id="button_color" value="#333333" />
有任何想法嗎?
這將是一種基本的方法,你可能會找到一種更好的方式來生成樣式字符串,但它看起來像這樣:
function generateStylesContent(){
var btnBgr = $("#button_background").val();
var btnColor = $("#button_color").val();
var stylesPlaceholder = ".buttons{background:[BACKGROUND];color:[COLOR];}";
var newGeneratedStyles = stylesPlaceholder
.replace("[BACKGROUND]", btnBgr)
.replace("[COLOR]", btnColor)
$('#color_scheme').text(newGeneratedStyles);
};
$('.buttons').on('click', function(){
generateStylesContent();
})
更新
你可以用以下方式使用j-query來做到這一點
$("#button_background").css("color",'blue')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.