Antworten:
Verwendung element.style
:
var element = document.createElement('select');
element.style.width = "100px";
Stellen Sie einfach Folgendes ein style
:
var menu = document.createElement("select");
menu.style.width = "100px";
Wenn Sie möchten, können Sie auch jQuery verwenden :
$(menu).css("width", "100px");
:)
Für die meisten Stile tun Sie dies:
var obj = document.createElement('select');
obj.style.width= "100px";
Führen Sie für Stile mit Bindestrichen im Namen stattdessen Folgendes aus:
var obj = document.createElement('select');
obj.style["-webkit-background-size"] = "100px"
Mit Vanille-JavaScript ist das eigentlich ganz einfach:
menu.style.width = "100px";
In allen Antworten erfahren Sie, wie Sie das tun, was Sie gefragt haben. Ich würde jedoch empfehlen, JavaScript zu verwenden, um eine Klasse für das Element festzulegen und es mithilfe von CSS zu formatieren. Auf diese Weise behalten Sie die richtige Trennung zwischen Verhalten und Stil bei.
Stellen Sie sich vor, Sie hätten einen Designer, der die Site neu gestaltet ... er sollte in der Lage sein, ausschließlich in CSS zu arbeiten, ohne mit Ihrem JavaScript arbeiten zu müssen.
Im Prototyp würde ich tun:
$(newElement).addClassName('blah')
$(selector).addClass('blah')
Nur für Leute, die 2018 das Gleiche tun wollen
Sie können Ihrem Element eine benutzerdefinierte CSS-Eigenschaft zuweisen (über CSS oder JS) und diese ändern:
Aufgabe durch CSS:
element {
--element-width: 300px;
width: var(--element-width, 100%);
}
Zuordnung durch JS
ELEMENT.style.setProperty('--element-width', NEW_VALUE);
Holen Sie sich den Eigenschaftswert über JS
ELEMENT.style.getPropertyValue('--element-width');
Hier nützliche Links:
Beim Debuggen möchte ich in der Lage sein, eine Reihe von CSS-Attributen in einer Zeile hinzuzufügen:
menu.style.cssText = 'width: 100px';
Wenn Sie sich an diesen Stil gewöhnt haben, können Sie eine Reihe von CSS in einer Zeile wie folgt hinzufügen:
menu.style.cssText = 'width: 100px; height: 100px; background: #afafaf';
<h1>Silence and Smile</h1>
<input type="button" value="Show Red" onclick="document.getElementById('h1').style.color='Red'"/>
<input type="button" value="Show Green" onclick="document.getElementById('h1').style.color='Green'"/>
<body>
<h1 id="h1">Silence and Smile</h1><br />
<h3 id="h3">Silence and Smile</h3>
<script type="text/javascript">
document.getElementById("h1").style.color = "Red";
document.getElementById("h1").style.background = "Green";
document.getElementById("h3").style.fontSize = "larger" ;
document.getElementById("h3").style.fontFamily = "Arial";
</script>
</body>
Dies funktioniert gut mit den meisten CSS-Eigenschaften, wenn sie keine Bindestriche enthalten.
var element = document.createElement('select');
element.style.width = "100px";
Objekte mit Bindestrichen in ihnen wie max-width
, sollten Sie wandeln die sausage-case
zucamelCase
var element = document.createElement('select');
element.style.maxWidth = "100px";
Es ist wichtig zu verstehen, dass der folgende Code nicht das Stylesheet, sondern das DOM ändert:
document.getElementById("p2").style.color = "blue";
Das DOM speichert einen berechneten Wert der Stylesheet-Elementeigenschaften. Wenn Sie einen Elementstil mithilfe von Javascript dynamisch ändern, ändern Sie das DOM. Dies ist wichtig zu beachten und zu verstehen, da die Art und Weise, wie Sie Ihren Code schreiben, Ihre Dynamik beeinflussen kann. Wenn Sie versuchen, Werte zu erhalten, die nicht direkt in das Element selbst geschrieben wurden, wie z.
let elem = document.getElementById('some-element');
let propertyValue = elem.style['some-property'];
... geben Sie einen undefinierten Wert zurück, der in der Variablen 'propertyValue' des Codebeispiels gespeichert wird. Wenn Sie mit dem Abrufen und Festlegen von Eigenschaften arbeiten, die in ein CSS-Stylesheet geschrieben wurden, und eine EINZELNE FUNKTION wünschen , die in dieser Situation, in der dies sehr häufig vorkommt, Stileigenschaftswerte erhält und festlegt, dann müssen Sie JQuery verwenden.
$(selector).css(property,value)
Der einzige Nachteil ist, dass Sie JQuery kennengelernt haben, aber dies ist ehrlich gesagt einer der vielen guten Gründe, warum jeder Javascript-Entwickler JQuery lernen sollte. Wenn Sie eine CSS-Eigenschaft erhalten möchten, die aus einem Stylesheet in reinem JavaScript berechnet wurde, müssen Sie diese verwenden.
function getCssProp(){
let ele = document.getElementById("test");
let cssProp = window.getComputedStyle(ele,null).getPropertyValue("width");
}
Der Nachteil dieser Methode ist, dass die Methode getComputedValue nur abgerufen wird, nicht festgelegt wird. Mozillas Übernahme berechneter Werte Dieser Link geht ausführlicher auf das ein, was ich hier angesprochen habe. Hoffe das hilft jemandem !!!
-webkit-background-size
? Gibt es eine Möglichkeit, diese mit einfachen js festzulegen, oder müssen wir jQuery verwenden?