Risposte:
Utilizzare element.style:
var element = document.createElement('select');
element.style.width = "100px";
Basta impostare il style:
var menu = document.createElement("select");
menu.style.width = "100px";
Oppure, se lo desideri, puoi usare jQuery :
$(menu).css("width", "100px");
:)
Per la maggior parte degli stili, procedere come segue:
var obj = document.createElement('select');
obj.style.width= "100px";
Per gli stili che hanno trattini nel nome, invece, fai questo:
var obj = document.createElement('select');
obj.style["-webkit-background-size"] = "100px"
In realtà è abbastanza semplice con JavaScript vaniglia:
menu.style.width = "100px";
Tutte le risposte ti dicono correttamente come fare quello che hai chiesto, ma consiglierei di usare JavaScript per impostare una classe sull'elemento e modellarlo usando CSS. In questo modo stai mantenendo la corretta separazione tra comportamento e stile.
Immagina se hai un progettista per ridisegnare il sito ... dovrebbero essere in grado di lavorare esclusivamente nei CSS senza dover lavorare con il tuo JavaScript.
Nel prototipo farei:
$(newElement).addClassName('blah')
$(selector).addClass('blah')
Solo per le persone che vogliono fare la stessa cosa nel 2018
Puoi assegnare una proprietà personalizzata CSS al tuo elemento (tramite CSS o JS) e modificarla:
Assegnazione tramite CSS:
element {
--element-width: 300px;
width: var(--element-width, 100%);
}
Cessione tramite JS
ELEMENT.style.setProperty('--element-width', NEW_VALUE);
Ottieni il valore della proprietà tramite JS
ELEMENT.style.getPropertyValue('--element-width');
Ecco link utili:
Durante il debug, mi piace essere in grado di aggiungere un sacco di attributi CSS in una riga:
menu.style.cssText = 'width: 100px';
Abituandoti a questo stile puoi aggiungere un sacco di CSS in una riga in questo modo:
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>
Funziona bene con la maggior parte delle proprietà CSS se non sono presenti trattini.
var element = document.createElement('select');
element.style.width = "100px";
Per le proprietà con trattini simili max-width, è necessario convertirli sausage-caseincamelCase
var element = document.createElement('select');
element.style.maxWidth = "100px";
È importante capire che il codice seguente non cambia il foglio di stile, ma cambia invece il DOM:
document.getElementById("p2").style.color = "blue";
Il DOM memorizza un valore calcolato delle proprietà degli elementi del foglio di stile e quando si modifica dinamicamente uno stile di elementi tramite Javascript, si modifica il DOM. Questo è importante da notare e capire perché il modo in cui scrivi il tuo codice può influenzare le tue dinamiche. Se si tenta di ottenere valori che non sono stati scritti direttamente nell'elemento stesso, in questo modo ...
let elem = document.getElementById('some-element');
let propertyValue = elem.style['some-property'];
... restituirai un valore indefinito che verrà archiviato nella variabile 'propertyValue' dell'esempio di codice. Se stai lavorando per ottenere e impostare proprietà scritte all'interno di un foglio di stile CSS e desideri una SINGOLA FUNZIONE che ottenga, oltre a impostare valori di proprietà di stile in questa situazione, che è una situazione molto comune, allora devi usare JQuery.
$(selector).css(property,value)
L'unico aspetto negativo è che hai conosciuto JQuery, ma questo è onestamente uno dei tanti buoni motivi per cui ogni sviluppatore Javascript dovrebbe imparare JQuery. Se si desidera ottenere una proprietà CSS calcolata da un foglio di stile in puro JavaScript, è necessario utilizzare.
function getCssProp(){
let ele = document.getElementById("test");
let cssProp = window.getComputedStyle(ele,null).getPropertyValue("width");
}
L'aspetto negativo di questo metodo è che solo il metodo getComputedValue ottiene, non imposta. Mozilla's Take on Computed Values Questo link approfondisce ulteriormente ciò che ho affrontato qui. Spero che questo aiuti qualcuno !!!
-webkit-background-size? C'è un modo per impostarli con js semplici o dobbiamo usare jQuery?