2011-11-04 10 views
16

Me gustaría indicarle al navegador que asigne ciertas clases de CSS a elementos que coincidan con un selector en particular. ¿Puedo hacerlo con CSS puro y, en caso afirmativo, cómo?Asignación de clases a elementos a través de CSS

Ejemplo: Quiero que todos los h5 elementos dentro de un div con id sidebar tengan la clase ui-corners-all

Respuesta

13

No, eso no es posible con CSS puro.

Sólo con JavaScript:

// jQuery 
$("h5").addClass("ui-corners-all"); 

// Pure JavaScript 
var elements = document.getElementsByTagName("h5"); 
for (var i=0; i<elements.length; i++) 
{ 
    var el = elements[i];  
    el.setAttribute("class", el.getAttribute("class") + " ui-corners-all"); 
} 
+1

¿Sería esta una manera extraña de aplicar clases de arranque? ? Estoy interesado en hacer esto para poder hacer un seguimiento de todo el css que se aplica a un elemento, pero también quiero terminar eliminando bootstrap/combinándolo con las anulaciones bajo mis nombres de clase con algo así como unCSS y no estoy seguro si causará problemas con eso u otras cosas. – thesowismine

0

No hay manera de asignar este valor a esos elementos en CSS puro.

Usted tendría que hacer:

#sidebar h5 
{ 

} 

luego copiar todos los estilos de ui-corners-all clase en esto.

O, alternativamente, cambiar su ui-corners-all CSS para:

.ui-corners-all, #sidebar h5 
{  

} 
+2

Eso técnicamente no es "asignar" la clase a estos elementos .. – jrharshath

+0

Actualicé mi respuesta, ya que no hay forma de asignar estos en css puro, así que he proporcionado una alternativa – Curt

0

No, no se puede. Sin embargo, puede usar Javascript (se recomienda jQuery) para lograr este efecto.

+3

Creo que ya está usando jQuery y jQuery UI ('ui-esquinas-all');) – ComFreek

+0

¡Ah, sí, tienes razón! :RE – Leonard

Cuestiones relacionadas