Supponiamo di voler modificare la larghezza di molti elementi, ad esempio per simulare una tabella. Mi rendo conto che si potrebbe fare questo:Modifica della definizione della regola CSS utilizzando jQuery
$(".class").css('width', '421px');
Questo altera la linea style='width: 421px;'
attributo per ogni elemento. Ora, quello che mi piacerebbe fare: è cambiare l'attuale definizione regola CSS:
.class {
width: 375px; ==[change to]==> 421px;
}
Quando si tratta di 100 di se non 1000 di nidificato <ul>
e <li>
che hanno bisogno di essere cambiato, sembra che questo sarebbe migliore per le prestazioni rispetto al tentativo di consentire a jQuery di eseguire il lavoro tramite il metodo .css()
.
ho trovato this example - questo è quello che sto cercando di fare:
var style = $('<style>.class { width: 421px; }</style>')
$('html > head').append(style);
non sto cercando di scambiare le classi ($el.removeClass().addClass()
), perché non posso avere una classe per OGNI ottimale larghezza (379px, 387px, 402px ..).
Potrei creare un elemento <style>
e impostare dinamicamente la larghezza, tuttavia penso che ci sia un modo migliore.
Penso davvero che dovresti scrivere due classi nel tuo CSS e aggiungere/rimuovere quelle appropriate quando necessario. Non dovresti scherzare con il tuo foglio di stile in JS, diventerà rapidamente non mantenibile. – kapa
@kapa, questo ha i suoi limiti, perché tutti i CSS devono essere definiti in anticipo. Ad esempio, non è possibile evidenziare elementi arbitrari di nth-child: '#root> div: nth-child ('+ Nth +') {background: red; } ' –