如何使用Javascript添加CSS规则(如强{颜色:红色})?
当前回答
您可以逐个元素添加类或样式属性。
例如:
<a name="myelement" onclick="this.style.color='#FF0';">text</a>
你可以这样做。背景,this.style。字体大小等。你也可以使用同样的方法应用一个样式
this.className='classname';
如果你想在javascript函数中做到这一点,你可以使用getElementByID而不是'this'。
其他回答
YUI最近专门为此添加了一个实用程序。点击这里查看stylesheet.js。
简单而直接的方法是在文档中创建并添加一个新的样式节点。
// Your CSS as text
var styles = `
.qwebirc-qui .ircwindow div {
font-family: Georgia,Cambria,"Times New Roman",Times,serif;
margin: 26px auto 0 auto;
max-width: 650px;
}
.qwebirc-qui .lines {
font-size: 18px;
line-height: 1.58;
letter-spacing: -.004em;
}
.qwebirc-qui .nicklist a {
margin: 6px;
}
`
var styleSheet = document.createElement("style")
styleSheet.innerText = styles
document.head.appendChild(styleSheet)
下面是一个示例模板来帮助您入门
不需要任何库,只使用javascript注入HTML和CSS。
这个函数是从上面的@Husky用户那里借来的
如果你想运行一个tampermonkey脚本,并想在网站上添加一个切换覆盖(例如,一个笔记应用程序),这很有用。
// INJECTING THE HTML document.querySelector('body').innerHTML += '<div id="injection">Hello World</div>'; // CSS INJECTION FUNCTION //https://stackoverflow.com/questions/707565/how-do-you-add-css-with-javascript function insertCss( code ) { var style = document.createElement('style'); style.type = 'text/css'; if (style.styleSheet) { // IE style.styleSheet.cssText = code; } else { // Other browsers style.innerHTML = code; } document.getElementsByTagName("head")[0].appendChild( style ); } // INJECT THE CSS INTO FUNCTION // Write the css as you normally would... but treat it as strings and concatenate for multilines insertCss( "#injection {color :red; font-size: 30px;}" + "body {background-color: lightblue;}" )
最短一行 //一个函数: const addCSS =css => document.head.appendChild(document.createElement("style")).innerHTML=css; / /使用方法: addCSS(“身体{背景:红色;}”)
我总是忘记如何添加一个类的HTML元素,这个SO出现在谷歌早期,但没有人添加这样做的现代方式,所以在这里。
要添加一个CSS样式,你可以选择元素并调用.classList.add(<className>)
例如: document.querySelector .classList.add(“#主要”)(“bg-primary”);
你可能还需要删除其他与你所添加的类冲突的类。 document.querySelector .classList.remove(“#主要”)(“bg-secondary”);
就是这样。运行示例,您将看到setInterval()方法每3秒添加&删除一次样式。
let useSecondary = false; setInterval(changeBgColor, 3000); function changeBgColor(){ if (useSecondary){ document.querySelector("#main").classList.remove("bg-primary"); document.querySelector("#main").classList.add("bg-secondary"); } else{ document.querySelector("#main").classList.remove("bg-secondary"); document.querySelector("#main").classList.add("bg-primary"); } useSecondary = !useSecondary; } * { transition: all 0.5s ease-in-out; } .bg-primary { background-color: green; } .bg-secondary{ background-color: yellow; } <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <div > <div id="main" > Example text has background color changed every 3 seconds by adding / removing CSS styles. </div> </div> </body> </html>