首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过JavaScript将类似HTML注入到DOM中

通过JavaScript将类似HTML注入到DOM中
EN

Stack Overflow用户
提问于 2018-06-27 03:57:50
回答 2查看 1.9K关注 0票数 2

我想知道我是否可以像通过JavaScript添加HTML代码那样将CSS代码作为字符串添加,例如:

代码语言:javascript
复制
var div = document.createElement("div");
div.innerHTML =
  '<div id="hs1"></div>\n' +
  '<div id="hs2"></div>\n' +
  '<div id="hs3"></div>\n'

document.body.appendChild(div);

我能以类似的方式添加一个巨大的CSS代码吗?

基本上我有超文本标记语言+ CSS + JS代码,我想放入一个.js文件,而不是一个.html。我是web开发的新手,所以我不知道。这有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-27 04:02:54

是的,你有没有尝试过创建一个<style>标签,用规则填充它,然后注入它?

代码语言:javascript
复制
const style = document.createElement("style");
style.innerHTML = "#foo{background-color: green;}";
document.head.appendChild(style);
代码语言:javascript
复制
<div id="foo">Foo bar</div>

票数 2
EN

Stack Overflow用户

发布于 2018-06-27 04:28:45

您可以使用CSSStyleSheet接口来操作样式表。下面的示例展示了如何操作现有的样式表。此方法允许您指定插入规则的位置,而不是始终将其附加到末尾:

代码语言:javascript
复制
document.querySelector("#button-1").addEventListener("click", function() {
  var sheet = document.querySelector("style").sheet;
  var color = "rgb(" + Math.floor(Math.random() * 256) + ", " + Math.floor(Math.random() * 256) + ", " + Math.floor(Math.random() * 256) + ")";
  sheet.insertRule("p { background-color: " + color + "; }", sheet.cssRules.length);
});
代码语言:javascript
复制
/* this stylesheet intentionally left blank */
代码语言:javascript
复制
<button id="button-1">Modify Stylesheet</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vestibulum urna risus, non finibus sem fermentum eget. In at libero a justo molestie semper. Praesent sit amet massa justo. Donec aliquet lobortis justo tincidunt ultrices.</p>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51050533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档