如何动态更新head标记中的CSS样式
How to update the CSS style in head tag dynamically
我有一个HTML,如下
<!DOCTYPE html>
<html>
<head>
<style>
p{font-size:14pt;color:red;}
</style>
</head>
<body>
<div>
<p class="hello"> this is a p tag </p>
<p> this is a p without class defined</p>
<div> this is a div tag
<p> this is a p tag within the div</p>
</div>
</div>
<div id = "OriginalMail" class = "orgmail">
<p> this is a Original Mail</p>
<p class="hello"> this is a p tag </p>
<p> this is a p without class defined</p>
<div> this is a div tag
<p> this is a p tag within the div</p>
</div>
</div>
</body>
</html>
我使用了一个javascript函数来限制样式仅应用于类名为orgmail
的div。
var sheets = document.styleSheets;
var OriginalMail = document.getElementById("OriginalMail");
var className = OriginalMail.className;
var selectorAppender = "div." + className + " ";
for (var i in sheets) {
var rules = sheets[i].rules || sheets[i].cssRules;
for (var r in rules) {
var selectorText = rules[r].selectorText;
if(typeof selectorText !== "undefined") {
rules[r].selectorText = selectorAppender + selectorText;
}
}
}
该样式仅应用于具有类名的div。
但我想修改样式标记数据也有限制
我原以为下一行会更新样式标记中的数据。
rules[r].selectorText = selectorAppender + selectorText;
请帮我解决这个问题。
很难!=(
我这样修改了你的JS:
var sheets = document.styleSheets;
var OriginalMail = document.getElementById("OriginalMail");
var className = OriginalMail.className;
var selectorAppender = "div." + className + " ";
for (var i in sheets) {
var rules = sheets[i].cssRules;
for (var r in rules) {
if(typeof rules[r] === "object") {
var selectorText = rules[r].selectorText;
var style = rules[r].style.cssText;
if(typeof selectorText !== "undefined") {
sheets[i].deleteRule(rules[r]);
var rule = selectorAppender + selectorText + " {" + style + " }";
sheets[i].insertRule(rule,0);
}
}
}
}
css规则的许多属性都是只读的,所以你必须删除该规则并添加一个新的css规则。
我做了一个JSFiddle。
Apolo
相关文章:
- 如果文本字段为空,则使用JavaScript应用CSS样式
- FF和Chromium中CSS样式按钮的外观差异
- CSS样式属性留空
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 用CSS在CKEditor中设置预览样式
- Javascript+动态菜单+当前链接样式(CSS)+基于PHP的网站
- 如何使用jQuery转换所有带有动态类的内联样式css
- iFrame 中的实时预览和保存样式.css每 30 秒一次
- 如何更改 jquery UI 数据选择器的样式 (CSS)
- 在Javascript中设置左样式CSS属性以移动滑块
- css+jQuery样式.css切换器,用于新的jQuery版本
- Chrome 29样式/Css问题
- 如何更改工具提示的样式/css
- 字体Awesome与半样式CSS
- Angular2组件样式/css没有被浏览器应用在ngafterviewit中
- 如何改变网页内容,而不删除任何样式/css/图形
- 使用Javascript在不影响打印样式的情况下更改显示样式(CSS)
- 使用 Get Time Javascript 更改样式 CSS
- 自定义下拉列表样式(CSS/JS与ASP.. NET c#连接)
- 为输入类型文件按钮添加禁用样式(css)