使用javascript动态添加CSS
我这里的代码只是一个猜测,但是我如何告诉javascript将样式应用于我指定的元素呢 请不要用jQuery。纯香草味的使用javascript动态添加CSS,javascript,Javascript,我这里的代码只是一个猜测,但是我如何告诉javascript将样式应用于我指定的元素呢 请不要用jQuery。纯香草味的 var sheet=document.createElement('style')) sheet.innerHTML=“DIV(1)>OL(0)>LI(1){背景色:蓝色;}”; 文件.正文.附件(页) 一, 二, 三, 一, 二, 三, 一, 二, 三, 一, 二, 三, 问题在于您正在创建一个元素,无法将innerHTML添加到该元素中。要将样式添加到动态元素
var sheet=document.createElement('style'))
sheet.innerHTML=“DIV(1)>OL(0)>LI(1){背景色:蓝色;}”;
文件.正文.附件(页)代码>
- 一,
- 二,
- 三,
一,
二,
三,
- 一,
- 二,
- 三,
一,
二,
三,
问题在于您正在创建一个
元素,无法将innerHTML
添加到该元素中。要将样式添加到动态元素,只需使用style
属性:
var sheet=document.createElement('span');
sheet.innerHTML=“示例”;
sheet.style.backgroundColor='青色';
文件.正文.附件(页)
问题在于您正在创建一个
元素,无法将innerHTML
添加到该元素中。要将样式添加到动态元素,只需使用style
属性:
var sheet=document.createElement('span');
sheet.innerHTML=“示例”;
sheet.style.backgroundColor='青色';
文件.正文.附件(页)代码>这里有一个有效的解决方案。希望有帮助
var规则='DIV:nth of type(2)OL:nth of type(1)LI:nth of type(2){background:blue;}',
head=document.head | | document.getElementsByTagName('head')[0],
style=document.createElement('style');
style.type='text/css';
if(style.styleSheet){
style.styleSheet.cssText=规则;
}否则{
appendChild(document.createTextNode(rule));
}
head.appendChild(样式)
- 一,
- 二,
- 三,
一,
二,
三,
- 一,
- 二,
- 三,
一,
二,
三,
这里有一个可行的解决方案。希望有帮助
var规则='DIV:nth of type(2)OL:nth of type(1)LI:nth of type(2){background:blue;}',
head=document.head | | document.getElementsByTagName('head')[0],
style=document.createElement('style');
style.type='text/css';
if(style.styleSheet){
style.styleSheet.cssText=规则;
}否则{
appendChild(document.createTextNode(rule));
}
head.appendChild(样式)
- 一,
- 二,
- 三,
一,
二,
三,
- 一,
- 二,
- 三,
一,
二,
三,
已经对此发表了评论,但我同意。为什么不使用下面这样的常规CSS
我不完全理解您的样品:
sheet.innerHTML=“DIV(1)>OL(0)>LI(1){背景色:蓝色;}”
若你们的意思是你们想把背景设置成蓝色
第一锂元素
在ol元素中
在第二个div元素内部
那么css将是:
div:nth-of-type(2) ol li:nth-of-type(1){
background-color: blue;
}
或者,如果它是动态创建的,那么使用JS和CSS,因为您很可能已经有了对元素的引用。使用元素的引用,然后向其中添加css类
.cssClassName{
background-color: blue;
}
var div = document.createElement("div");
div.className += "cssClassName";
看看这两个例子的小提琴-
希望这有帮助 已经对此发表了评论,但我同意。为什么不使用下面这样的常规CSS
我不完全理解您的样品:
sheet.innerHTML=“DIV(1)>OL(0)>LI(1){背景色:蓝色;}”
若你们的意思是你们想把背景设置成蓝色
第一锂元素
在ol元素中
在第二个div元素内部
那么css将是:
div:nth-of-type(2) ol li:nth-of-type(1){
background-color: blue;
}
或者,如果它是动态创建的,那么使用JS和CSS,因为您很可能已经有了对元素的引用。使用元素的引用,然后向其中添加css类
.cssClassName{
background-color: blue;
}
var div = document.createElement("div");
div.className += "cssClassName";
看看这两个例子的小提琴-
希望这有帮助 如果可以注入JavaScript,那么就可以注入CSS
我建议您创建一个CSS文件并添加以下内容:
var css = document.createElement("link");
css.rel = "stylesheet";
css.href = "css/style.css";
document.head.appendChild(css);
在CSS文件中维护您的设计更新比作为单个规则要容易得多。如果您可以注入JavaScript,那么您可以注入CSS
我建议您创建一个CSS文件并添加以下内容:
var css = document.createElement("link");
css.rel = "stylesheet";
css.href = "css/style.css";
document.head.appendChild(css);
在CSS文件中维护您的设计更新比作为单个规则要容易得多。这可能是一个愚蠢的问题,但是,为什么不使用普通CSS呢?您要寻找的选择器可能是DIV:nth类型(2)OL:nth类型(1)LI:nth类型(2)
。为什么要使用JavaScript创建CSS?@user2182349这是一种非常有效的方法,可以为无法控制HTML的元素设置样式(尽管OP是一种非常基本的方法)。与其直接向元素添加类或样式,不如插入一个新的样式规则。@RobG-如何使用JavaScript将链接标记与CSS一起注入?这可能是一个愚蠢的问题,但为什么不使用纯CSS?您要查找的选择器可能是DIV:nth of type(2)OL:nth of type(1)LI:nth of type(2)
。为什么要使用JavaScript创建CSS?@user2182349这是一种非常有效的方法,可以为无法控制HTML的元素设置样式(尽管OP是一种非常基本的方法)。与其直接向元素添加类或样式,不如插入一个新的样式规则。@RobG-使用JavaScript注入带有CSS的链接标记怎么样?很酷,不过我认为所需的选择器是DIV:nth类型(2)OL:nth类型(1)LI:nth类型(2)
和变量CSS可能是更好的命名规则。;-)@RobG更新了我的解决方案。谢谢你的意见,伙计!很酷,尽管我认为所需的选择器是DIV:nth类型(2)OL:nth类型(1)LI:nth类型(2)
和变量css可能是更好的命名规则。;-)@罗布更新