¿Definir clases CSS globales usando JavaScript o jQuery?

2 minutos de lectura

Avatar de usuario de MaiaVictor
maiavictor

¿Hay alguna forma de configurar el CSS de las clases globales usando JavaScript o jQuery? Es decir, agregar .my_class { foo:bar } hacia <style/> etiqueta de la pagina?

  • posible duplicado de ¿Es posible modificar una hoja de estilo CSS usando JavaScript? (NO el estilo de un objeto, sino la hoja de estilo en sí)

    – Quintín

    19 de marzo de 2013 a las 7:45

  • Posible duplicado: jQuery crea regla/clase CSS en tiempo de ejecución

    – Booz

    19 de marzo de 2013 a las 7:45

  • si pero ponle gran advertencia en la fuente de su sitio, alertando a cualquier persona que trabaje en el sitio en el futuro. En mi experiencia, los sitios con hojas de estilo construidas/modificadas dinámicamente son las cosas más confusas del universo conocido.

    – Remolacha-Remolacha

    19 de marzo de 2013 a las 7:53

  • Lo siento, sabía que probablemente sería una pregunta duplicada, pero pasé unos minutos buscándola ayer y solo pude encontrar enlaces irrelevantes, principalmente porque los resultados se vieron eclipsados ​​​​por información sobre .addClass de jQuery.

    – MaiaVictor

    19 de marzo de 2013 a las 8:03

Javascript puro –

var style=document.createElement('style');
style.type="text/css";
if(style.styleSheet){
    style.styleSheet.cssText="your css styles";
}else{
    style.appendChild(document.createTextNode('your css styles'));
}
document.getElementsByTagName('head')[0].appendChild(style);

  • Bueno, hay dos respuestas correctas… elegir por Math.random().

    – MaiaVictor

    19 de marzo de 2013 a las 8:14

  • Si bien ambas respuestas brindan una solución correcta para la pregunta dada, prefiero usar javascript puro por razones de rendimiento siempre que no intente admitir versiones antiguas de IE.

    – inmensamente superior

    29/09/2015 a las 21:45

  • Estoy agregando el CSS global lo antes posible para que los nuevos elementos se representen respetando ese nuevo CSS. En este momento, jQuery aún no está cargado y, por lo tanto, JS puro es una mejor opción

    – CraZ

    24 de abril de 2020 a las 10:02

  • ¿Por qué hay ese SI?

    – CraZ

    24 de abril de 2020 a las 10:06

  • IF para pruebas de navegadores para el soporte de hoja de estilo dinámica, IE antiguo en particular …

    – astronauta12

    25 de abril de 2020 a las 13:26

Sí, puedes hacer eso en jQuery:

var styleTag = $('<style>.my_class { foo: bar; }</style>')
$('html > head').append(styleTag);

Funciona simplemente agregando <style> etiqueta al final de <head>.

  • Bueno, hay dos respuestas correctas… elegir por Math.random().

    – MaiaVictor

    19 de marzo de 2013 a las 8:14

  • estilos multilínea: let estilos = `tus estilos aquí multilínea`; y luego: var styletag = $(estilos);

    – jmp

    27 de marzo de 2020 a las 8:07


¿Ha sido útil esta solución?