Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript动态添加CSS_Javascript - Fatal编程技术网

使用javascript动态添加CSS

使用javascript动态添加CSS,javascript,Javascript,我这里的代码只是一个猜测,但是我如何告诉javascript将样式应用于我指定的元素呢 请不要用jQuery。纯香草味的 var sheet=document.createElement('style')) sheet.innerHTML=“DIV(1)>OL(0)>LI(1){背景色:蓝色;}”; 文件.正文.附件(页) 一, 二, 三, 一, 二, 三, 一, 二, 三, 一, 二, 三, 问题在于您正在创建一个元素,无法将innerHTML添加到该元素中。要将样式添加到动态元素

我这里的代码只是一个猜测,但是我如何告诉javascript将样式应用于我指定的元素呢

请不要用jQuery。纯香草味的

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可能是更好的命名规则。;-)@罗布更新