![](/img/trans.png)
[英]How to create css class in imported css file with vanilla javascript
[英]How to create class in a custom CSS file by JavaScript?
我想在运行时使用JavaScript创建CSS类并写入自定义CSS文件。
现在,我编写了代码(请参见下文)并创建了我的类,但是我不知道如何在CSS文件中创建它。
var sheet = document.createElement('style') sheet.innerHTML = ".context-menu-icon-case1:before{content: url(progressbar.png);}"; document.body.appendChild(sheet);
它在当前页面中创建CSS类,但我想在自定义css文件中创建它。
你不能 对不起。 好消息是您不需要。 通过Javascript插入CSS与从css文件读取相同。
您可以使用XMLHttpRequest()
或fetch()
来请求现有的.css
文件,而不是将文件加载到html
,也可以将新的样式规则附加到XMLHttpRequest.responseText
或response.text()
的.css
文件中,或者使用FileReader
。
创建一个Blob
或File
对象,或将新css
文本的编码文本表示形式追加到现有文件中,创建一个<link>
元素,并将rel
属性设置为stylesheet
,将href
属性设置为objectURL
,将data URI
或已创建文件的编码文本追加到link
到document.head
元素。
<head>
<script>
var cssupdate = `.context-menu-icon-case1:before {
content: url(progressbar.png);
}`;
var cssfile = "style.css";
fetch(cssfile)
.then(response => response.text())
.then(currentcss => {
var css = currentcss + "\n" + `${cssupdate}`;
var link = document.createElement("link");
link.rel = "stylesheet";
link.type = "text/css";
link.href = "data:text/css," + encodeURIComponent(css);
document.querySelector("head").appendChild(link);
});
</script>
</head>
您可以只在css文件中编写一个css类,然后通过javascript在运行时应用css类,如下所示:
html file:
<div id="test"></div>
css file:
.context-menu-icon-case1: {
color: xxx,
width: xxx
}
javascript file:
var ele = document.getElementById("test");
ele.className += "context-menu-icon-case1";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.