Saltar al contenido principal
Codigo Heroe
Tarea anterior
CSS: selectores, herencia y cascada14/15
A la lista de tareas
  1. 1. Reglas CSS
  2. 2. Selectores
  3. 3. Propiedades y valores
  4. 4. Herencia
  5. 5. Propiedades heredables
  6. 6. Propiedades no heredables
  7. 7. Propiedades abreviadas
  8. 8. Valores absolutos y relativos
  9. 9. Selectores de etiqueta y de clase
  10. 10. Selectores descendientes
  11. 11. Estilos predeterminados
  12. 12. La cascada
  13. 13. Conflictos entre propiedades
  14. 14. Varias clases en un elemento
  15. 15. Estilos en línea: el atributo style
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

Varias clases en un elemento

Practiquemos el uso de varias clases para dar estilo, una técnica que ya probamos en la primera parte del curso introductorio. Para recordarla, veamos un ejemplo. Imagina que tu sitio tiene distintos tipos de avisos:

<div class="alert">Un mensajito.</div>
<div class="alert alert-error">¡Erro-o-or! ¡Todo está perdi-i-ido!</div>

Comparten todos los estilos salvo el fondo. Los mensajes normales tienen un fondo gris; los de error, rojo. Podemos organizar sus estilos así:

.alert {
  /* propiedades para bordes, rellenos, etc. */
  background-color: lightgrey;
}
.alert-error { background-color: red; }

Todos los mensajes tienen la clase alert, con los estilos comunes. Solo los de error tienen además la clase alert-error, con sus estilos particulares. Recuerda: los nombres de clase del atributo class se separan con espacios.

¿Por qué conviene organizar el código así? Ahora que sabemos cómo funciona la cascada, es fácil responder.

Usar varias clases en el HTML permite indicar explícitamente qué estilos se combinarán mediante la cascada. Además, resulta cómodo colocar esas reglas una junto a otra.

Si usamos selectores del mismo tipo, como los de clase de este ejemplo, el conflicto se resuelve por su orden en el código. Colocamos la regla particular después de la general y se sobrescribe el valor que queremos cambiar.

Ahora que sabemos qué ocurre, mejoremos el bloque de habilidades: pondremos en verde la barra con el porcentaje más alto. Agregaremos otra clase al HTML y una regla para esa clase después de la regla general.

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <title>Sitio de un principiante en HTML y CSS</title> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>Sitio de un principiante en HTML y CSS</h1> </header> <main> <img class="avatar" src="img/raccoon.svg" width="80" height="80" alt="Avatar"> <nav class="blog-navigation"> <h2>Entradas del blog</h2> <ul> <li><a href="day-1.html">Día 1. Cómo olvidé darle de comer al gato</a></li> <li><a href="day-2.html">Día 2. Quiero dedicarme a HTML y CSS</a></li> <li><a href="day-3.html">Día 3. Mi gato está enojado conmigo</a></li> <li><a href="day-4.html">Día 4. Casi me enfermo</a></li> <li><a href="day-5.html">Día 5. Un descanso</a></li> <li><a href="day-6.html">Día 6. No entendí nada</a></li> <li><a href="day-7.html">Día 7. Cupcake me encargó una tarea</a></li> <li><a href="day-8.html">Día 8. Un día muy serio</a></li> <li><a href="day-9.html">Día 9. O mejor dicho, noche</a></li> <li><a href="day-10.html">Día 10. Un primer balance</a></li> <li><a href="day-11.html">Día 11. Sin exagerar</a></li> <li><a href="day-12.html">Día 12. A todos les gustan las galletas</a></li> <li><a href="day-13.html">Día 13. Encontré un artículo</a></li> <li><a href="day-14.html">Día 14. Un formato nuevo</a></li> <li><a href="day-15.html">Día 15. Una galería de selfis</a></li> </ul> </nav> <section> <p>¡Hola a todos! Les doy la bienvenida a mi primer sitio web. Hace poco no tenía ni idea de cómo se crean las páginas web, pero ahora encontré <a href="https://htmlacademy.org/courses">cursos interactivos de HTML y CSS</a> y me propuse aprender a crearlas. Hasta tengo un instructor: Cupcake, que no me dejará bajar el ritmo y estará atento a mis avances.</p> <p>Mi primera tarea es llevar un diario y contar con sinceridad todos mis logros.</p> </section> <section> <h2>Habilidades</h2> <dl class="skills"> <dt>HTML</dt> <!-- Agrega una segunda clase al div de abajo --> <dd><div class="skills-level">60%</div></dd> <dt>CSS</dt> <dd><div class="skills-level">20%</div></dd> <dt>JS</dt> <dd><div class="skills-level">10%</div></dd> </dl> </section> </main> <footer> Pie de página </footer> </body> </html>
CSS
body { padding: 0 30px; font-size: 16px; line-height: 26px; font-family: "Arial", sans-serif; color: #222222; background: #ffffff url("img/bg-page.png") no-repeat top center; } h1 { font-size: 36px; line-height: normal; } h2 { font-size: 20px; line-height: normal; } a { color: #0099ef; text-decoration: underline; } .avatar { border-radius: 50%; } .blog-navigation { margin-bottom: 30px; padding: 20px; background-color: #4470c4; border: 5px solid #2d508f; color: #ffffff; } .blog-navigation h2 { margin-top: 0; } .blog-navigation ul { list-style: none; padding-left: 0; } .blog-navigation li { margin-bottom: 5px; } .blog-navigation a { color: #ffffff; } .skills dd { margin: 0; margin-bottom: 10px; background-color: #e8e8e8; } .skills-level { font-size: 12px; text-align: center; color: #ffffff; background-color: #4470c4; } /* Descomenta la regla de abajo */ /* .skills-level-ok { background-color: #47bb52; } */ footer { margin-top: 30px; }

El código ha cambiado, haz clic en "Actualizar" o activa la ejecución automática.

Ha ido a otra página

Haga clic dentro del mininavegador para poner el foco en esta ventana.

100%
ObjetivosRealizado
0
    1. En el primer dd, agrega una segunda clase, skills-level-ok, al div que tiene la clase skills-level.
    2. En el CSS, descomenta la regla con el selector .skills-level-ok.
    Codigo Heroe

    © 2023-2026, codigoheroe.com