ich jquery bin mit CSS eines div-Elements zu ändern, auf Knopfdruck.
Die naheliegendste wäre natürlich hinzufügen/entfernen/wechseln eine Klasse mit einer vordefinierten Regel, wie diese,
CSS
.wider {
width: 500px;
}
Script
$("element").toggleClass("wider");
aber Wenn Sie nicht danach suchen, können Sie ein Stilelement dynamisch hinzufügen, um eine vorhandene Regel zu überschreiben
JS
function loadStyle(css) {
var style = document.querySelector('style[id="lastinbody"]') || document.createElement('style');
style.id = 'lastinbody';
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
document.querySelector('body').appendChild(style);
}
Nutzungs
loadStyle('.item { color: red; }');
bemerkte ich die CSS HTML immer inline.
Wenn Sie den Stil wollen die head
hinzugefügt, tun wie dieser
JS
function loadStyle(css) {
var style = document.querySelector('head style[id="addedinhead"]') || document.createElement('style');
style.id = 'addedinhead';
style.type = 'text/css';
if (style.styleSheet){
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
document.querySelector('head').appendChild(style);
}
Und hier ist wie eine CSS-Datei schieben
var style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.media = 'screen';
style.href = 'css-file-path';
document.querySelector('head').appendChild(style);
Und dieser zeigt, wie man ein bestehendes verknüpft Sheet
HTML
<head>
<link title="customCSS" rel="stylesheet" type="text/css" href="style.css">
</head>
JS
function setStyleSheetRule(title, rule) {
for(var i=0; i<document.styleSheets.length; i++) {
var sheet = document.styleSheets[i];
if(sheet.title == title) {
sheet.insertRule(rule, sheet.cssRules.length);
}
}
}
setStyleSheetRule('customCSS', '.have-border { border: 1px solid black;}')
Lesen Sie mehr hinzuzufügen: https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet/insertRule
Anfügen Inline-Styles, es ist der einzige Weg, CSS mit jQuery (JavaScript) ändern. Sie können den Wert in der CSS-Datei nicht ändern. –
Bekomme es komplett, gibt es eine Arbeit um? – Karthick
Keine, die ich kenne –