2010-12-30 11 views

Respuesta

38

No es posible con CSS vainilla. Sin embargo, usted puede usar algo como:

Sass se burla CSS de nuevo. Sass es una extensión de CSS3, que agrega reglas anidadas, variables, mixins, herencia de selector , y más. Se tradujo a CSS estándar con formato correcto utilizando la herramienta de línea de comandos o un complemento de web-framework .

O

En lugar de construir selector de largo nombres para especificar la herencia, en menos puede simplemente selectores anidar dentro de otros selectores. Esto hace que herencia clara y hojas de estilo más corto.

Ejemplo:

#header { 
    color: red; 
    a { 
    font-weight: bold; 
    text-decoration: none; 
    } 
} 
+0

bien. Gracias. Estoy usando JQuery de todos modos, entonces lo usaré. Solo esperaba usar css porque si dinámicamente agrego otro pice de html con class2, por ejemplo, esa clase se adjuntará al nuevo html, mientras que con Jquery tengo que agregarlo manualmente después de agregar el html – kralco626

+4

. jQuery tiene que ver con eso? ¿Estás sugiriendo que muevas tu propio preprocesador de CSS en jQuery? – moopet

4
No

directamente. Pero puede usar extensiones como LESS para ayudarlo a lograr lo mismo.

+0

bien. Gracias. Estoy usando JQuery de todos modos, entonces lo usaré. Solo esperaba usar css porque si añadiera dinámicamente otro pice de html con class2, por ejemplo, esa clase se adjuntaría al nuevo html, mientras que, como con Jquery, debo agregarlo manualmente después de agregar el html. – kralco626

31

No con CSS puro. El equivalente más cercano es la siguiente:

.class1, .class2 { 
    some stuff 
} 

.class2 { 
    some more stuff 
} 
2

Puede utilizar grouping selectors y/o múltiples clases en un solo elemento, o puede utilizar un lenguaje de plantillas y la procesan con un software para escribir su CSS.

Vea también mi artículo en CSS inheritance.

0

No creo que esto sea posible. Puede agregar class1 a todos los elementos que también tengan class2. Si no es práctico hacerlo manualmente, puede hacerlo automáticamente con JavaScript (bastante fácil de hacer con jQuery).

15

Actualización: Hay una especificación CSS3 para el anidamiento de nivel 3 de CSS. Actualmente es un borrador. https://tabatkins.github.io/specs/css-nesting/

Si se aprueba, la sintaxis sería el siguiente:

table.colortable { 
    & td { 
    text-align:center; 
    &.c { text-transform:uppercase } 
    &:first-child, &:first-child + td { border:1px solid black } 
    } 
    & th { 
    text-align:center; 
    background:black; 
    color:white; 
    } 
} 
+0

Creo que nadie vio esta publicación pero, gran noticia hombre ... En serio. –

0

probar este ...

dar al elemento un identificador, y también un nombre de clase. Entonces puedes anidar el #IDName.className en tu CSS.

He aquí una explicación mejor https://css-tricks.com/multiple-class-id-selectors/

+1

¿Cómo es útil? No le permite extender una regla de CSS, que es lo que hace la pregunta, y no hay ningún beneficio al usar una ID con una clase en lugar de simplemente usar múltiples clases de todos modos. – moopet

Cuestiones relacionadas