Pregunta

Necesito diseñar un elemento que tenga la clase .a y la clase .b . ¿Cómo lo hago?

El orden en que aparecen las clases en el HTML puede variar.

<style>
    div.a ? div.b {
        color:#f00;
    }
</style>
<div class="a">text not red</div>
<div class="b">text not red</div>
<div class="a b">red text</div>
<div class="b a">red text</div>
¿Fue útil?

Solución

Eso es completamente posible. Si especifica dos clases en un elemento (sin espacios), eso significa que debe tener ambas para que se aplique la regla.

div.a {
  color: blue;
}
div.b {
  color: green;
}
div.a.b {
  color: red;
}
<div class="a">
  A
</div>
<div class="b">
  B
</div>
<div class="a b">
  AB
</div>

Otros consejos

Los selectores de clase se pueden combinar:

div.a.b {
  color: red;
}

Cotización de la especificación :

  

Para hacer coincidir un subconjunto de " clase " valores, cada valor debe ir precedido por un ". " ;.

     

Por ejemplo, la siguiente regla coincide con cualquier elemento P cuya " clase " a este atributo se le ha asignado una lista de valores separados por espacios que incluye " pastoral " y " marino " ;:

p.marine.pastoral { color: green }
     

Esta regla coincide cuando class = " pastoral blue aqua marine " pero no coincide con class = " pastoral blue " .

div[class~="a"][class~="b"]{
color:#f00;
}

/ * selecciona la etiqueta div que tiene clase a y b juntas * /

 <style>
    div.a.b
    { 
         color:#f00;
    }
    </style>
    <div class="a">text not red</div>
    <div class="b">text not red</div>
    <div class="a b">red text</div>
    <div class="b a">red text</div>

Sí, use una clase común, o por qué no, JavaScript si el contenido cambia dinámicamente

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top