Hojas de estilo CSS: selectores, cascada y modelo de caja

Aprende a aplicar estilos a páginas web con CSS. Escribe reglas y vincula una hoja de estilo, parte de los estilos predeterminados del navegador y selecciona exactamente los elementos que quieras. Predice qué estilo prevalece cuando hay conflictos entre reglas mediante la cascada, la especificidad y la herencia. Especifica colores y elige unidades, dimensiona y separa elementos con el modelo de caja y aplica estilos a fuentes, texto, listas, enlaces, fondos y bordes.

PrincipianteUnidad 4 de 8 del curso Curso de Fundamentos de desarrollo web

Lo que aprenderás

  1. Escribe reglas CSS válidas, vincula una hoja de estilo a una página HTML y parte de los estilos que ya aplica el navegador, usando las herramientas de desarrollo para ver qué ocurre.
    • Escribe reglas CSS y vincula una hoja de estilo a una página
      Lee y escribe las partes de una regla CSS, elige entre una hoja de estilo externa, un elemento <style> y estilos en línea, y descubre qué hace el navegador con los errores.
    • Parte de los estilos predeterminados del navegador e inspecciónalos
      Reconoce los estilos que aplica cada navegador antes que los tuyos, decide cuáles restablecer y usa las herramientas de desarrollo para averiguar por qué un elemento tiene determinado aspecto.
  2. Selecciona exactamente los elementos deseados con selectores de tipo, clase e ID, selectores de atributo, pseudoclases, pseudoelementos y combinadores.
    • Selecciona elementos por tipo, clase e ID
      Selecciona elementos por nombre, clase o ID, combina selectores que deben coincidir con el mismo elemento y agrupa varios selectores en una regla.
    • Selecciona por atributos, estados y partes de los elementos
      Usa selectores de atributo, pseudoclases para estados y posiciones, y pseudoelementos que aplican estilos a parte de un elemento o añaden contenido generado.
    • Combina selectores según su posición en la página
      Selecciona elementos por su relación con otros elementos del árbol HTML: en cualquier lugar dentro, directamente dentro, justo después o en algún lugar después de otro elemento.
  3. Determina qué declaración se aplica cuando varias reglas establecen la misma propiedad, calcula la especificidad y explica cómo obtienen los elementos valores que ninguna regla les asignó directamente.
    • Sigue la cascada para encontrar la declaración que prevalece
      Aplica los pasos de la cascada (origen e importancia, especificidad y después orden de aparición), y usa con cuidado los estilos en línea, !important y las capas de cascada.
    • Calcula y compara la especificidad
      Calcula la puntuación de cualquier selector en el formato ID-CLASE-TIPO, compara las puntuaciones columna por columna y mantén baja la especificidad para que los estilos sigan siendo fáciles de reemplazar.
    • Usa la herencia y las palabras clave globales
      Conoce qué propiedades pasan de padres a hijos, usa la herencia para escribir menos CSS y contrólala con inherit, initial, unset y revert.
  4. Especifica colores con las principales notaciones de CSS, haz que el texto sea legible sobre su fondo y elige entre unidades absolutas y relativas para texto, espaciado y tamaños.
    • Especifica colores con palabras clave, notación hexadecimal, rgb() y hsl()
      Usa palabras clave de color, códigos hexadecimales, rgb() y hsl(), añade transparencia y comprueba que el texto contraste lo suficiente con su fondo.
    • Elige longitudes y unidades
      Usa correctamente píxeles, em, rem, porcentajes y unidades relativas al área de visualización, conoce la referencia de cada unidad relativa y combina unidades con calc().
  5. Explica cómo se dibuja cada elemento como una caja de contenido, relleno, borde y margen, calcula su tamaño y controla el espacio dentro de las cajas y entre ellas.
    • Calcula el tamaño de las cajas a partir del contenido, el relleno, el borde y el margen
      Nombra las cuatro partes de una caja, escribe las propiedades abreviadas de espaciado y calcula el tamaño de un elemento en los modelos de caja estándar y alternativo.
    • Controla el espaciado entre cajas de bloque y cajas en línea
      Predice cómo ocupan espacio las cajas de bloque, en línea y de bloque en línea, centra un bloque con márgenes automáticos y reconoce cuándo colapsan los márgenes verticales.
  6. Elige y carga fuentes, haz legible el texto, aplica estilos a listas y enlaces y decora cajas con fondos, degradados, bordes, esquinas redondeadas y sombras.
    • Elige fuentes y carga fuentes web
      Escribe listas de fuentes alternativas, establece el tamaño, el grosor y el estilo, usa la propiedad abreviada font y carga una fuente personalizada con @font-face.
    • Aplica estilos al texto, las listas y los enlaces para facilitar la lectura
      Establece la altura de línea, la alineación, la decoración, las mayúsculas y minúsculas y el espaciado, cambia los marcadores y la sangría de las listas y da a los enlaces estados claros y accesibles.
    • Añade colores, imágenes y degradados de fondo
      Rellena cajas con colores, imágenes y degradados, controla cómo se repiten, escalan y colocan las imágenes de fondo y escribe la propiedad abreviada background.
    • Dibuja bordes, esquinas redondeadas, contornos y sombras
      Escribe propiedades abreviadas de borde para todos los lados o para uno solo, redondea esquinas con border-radius y añade contornos y sombras sin cambiar la disposición.

Guía de estudio de Hojas de estilo CSS

6 capítulos

1

Vincula CSS e inspecciona el resultado

CSS convierte una página HTML con significado en una página con colores, tipografía y espaciado elegidos. Para que una regla funcione, necesita tanto una sintaxis válida como una vinculación con el documento. El navegador también aporta sus propios estilos, por lo que siempre partes de un aspecto existente. Aprende a vincular una hoja de estilo externa, hacer un pequeño cambio y seguirlo en las herramientas de desarrollo cuando el resultado sea distinto de lo que esperabas.

1.1 Reglas, declaraciones y hojas de estilo

HTML describe el contenido y su significado. CSS, abreviatura de hojas de estilo en cascada, describe la presentación: colores, fuentes, espaciado, bordes y fondos. Cambiar una hoja de estilo puede dar al mismo HTML un aspecto diferente sin cambiar sus encabezados, párrafos ni enlaces.

Lee una regla
p {
  color: navy;
  font-size: 18px;
}

El selector p coincide con los párrafos. Las llaves encierran el bloque de declaraciones. Cada declaración tiene una propiedad, dos puntos, un valor y un punto y coma. Aquí, color y font-size son propiedades; navy y 18px son valores. Los saltos de línea y los espacios entre estas partes facilitan la lectura del código sin cambiar su efecto.

El punto y coma separa una declaración de la siguiente. El último es opcional, pero conservarlo evita errores cuando añades otra línea. En color: navy font-size: 18px;, el navegador lee un único valor de color no válido. No puede recuperar las dos declaraciones que querías escribir, por lo que ese texto no establece ninguno de los dos estilos.

Vincula el CSS

Una hoja de estilo externa es un archivo CSS independiente vinculado desde el head del HTML:

<link rel="stylesheet" href="css/styles.css">

Esta ruta significa que una carpeta llamada css está junto al archivo HTML y contiene styles.css. Un archivo externo puede aplicar estilos a varias páginas. Al guardar un cambio en él, se actualizan las reglas que cargan esas páginas.

Un elemento style en el head contiene reglas para una página. Un atributo style en línea contiene declaraciones para un elemento, como <p style="color: crimson;">Hello.</p>. Las hojas de estilo externas suelen ser más fáciles de mantener. Las declaraciones normales en línea también prevalecen sobre las reglas normales de las hojas de estilo del autor, lo que puede dificultar cambios posteriores.

Para obtener un primer resultado, coloca body { font-family: Arial, sans-serif; } y h1 { color: darkslateblue; } en el archivo vinculado. Recarga la página. El texto principal usa Arial donde esté disponible, con una fuente sin serifa como alternativa; el encabezado cambia de color. Los controles como los botones pueden conservar su propia fuente del navegador hasta que indiques expresamente que la hereden.

Detecta errores de sintaxis y de ruta

Los navegadores omiten las declaraciones no válidas y continúan. color: 12px; no es válido porque una longitud no es un color. font-size: 16 px; no es válido porque el número y la unidad deben ir juntos. Una propiedad mal escrita también se ignora. Una declaración de borde válida en el mismo bloque puede seguir funcionando, por lo que un cambio visible no demuestra que todas las declaraciones sean válidas.

Los comentarios de CSS usan /* Header styles */ y pueden ocupar varias líneas. // no inicia un comentario de CSS; puede hacer que se omita el código que sigue. Los nombres de propiedades y los valores de palabras clave habituales no distinguen entre mayúsculas y minúsculas; por convención, escríbelos en minúsculas. Los nombres de clase y las rutas de archivo deben coincidir con su escritura y sus mayúsculas y minúsculas reales.

Si no aparece ningún estilo, comprueba la solicitud en el panel Red. Una ruta incorrecta como style.css puede devolver 404 aunque la propia página HTML se abra con normalidad.

Trata las propiedades abreviadas como configuraciones completas

Una propiedad abreviada establece varias propiedades relacionadas a la vez. margin: 10px 20px; establece los cuatro márgenes. Las partes omitidas vuelven a sus valores iniciales: background-image: url("sky.jpg"); seguido de background: lightblue; elimina la imagen. Coloca primero la propiedad abreviada y después las excepciones individuales que deban conservarse.

Puntos clave

  • Escribe cada declaración como property: value; dentro de una regla.
  • Vincula una hoja de estilo externa desde el head del HTML; resuelve su ruta desde el archivo HTML.
  • El navegador omite el CSS no válido y continúa con las declaraciones válidas.
  • Usa /* ... */ para los comentarios de CSS.
  • Una propiedad abreviada restablece las propiedades individuales relacionadas que omite.

1.2 Valores predeterminados del navegador y herramientas de desarrollo

Una página HTML sin estilos sigue teniendo encabezados grandes, espaciado entre párrafos, marcadores de lista y enlaces subrayados. Estos proceden de la hoja de estilo del agente de usuario, el CSS integrado del navegador. Tus estilos parten de estos valores predeterminados; una página sin estilos propios no es una página sin reglas CSS.

Elige el significado antes que el aspecto

Los valores predeterminados habituales incluyen un margen de 8px en el cuerpo, márgenes verticales de 1em en los párrafos y un relleno inicial de 40px en las listas. Los valores predeterminados de los encabezados incluyen 2em para h1 y 1.5em para h2, con márgenes verticales de 0.67em para h1. El texto de importancia destacada aparece en negrita; el texto con énfasis aparece en cursiva. Los enlaces no visitados suelen ser azules y los visitados, morados. La configuración y las implementaciones de los navegadores pueden afectar a los valores predeterminados, así que inspecciona la página real cuando necesites precisión.

El tamaño de texto predeterminado suele ser 16px, con una fuente elegida en la configuración del navegador. Los lectores pueden cambiar ese tamaño. Los tamaños de fuente relativos pueden seguir su elección.

Elige un elemento HTML por su significado y después aplícale estilos. Si un h2 parece demasiado grande, usa h2 { font-size: 1.25rem; }. Elegir un h4 solo por tener una letra más pequeña cambiaría la estructura de encabezados. Cambiar el tamaño en CSS mantiene intacto el significado del encabezado de segundo nivel.

Los valores predeterminados también determinan cómo ocupan espacio los elementos. Los párrafos y las secciones normalmente forman cajas de bloque. Los elementos span y los enlaces normalmente fluyen dentro de las líneas. Los elementos de lista tienen display: list-item, lo que les da una caja de nivel de bloque y un marcador. Un cambio de display en CSS altera el comportamiento de la caja y conserva el significado HTML del elemento.

Restablece solo lo que quieras

Un restablecimiento de estilos elimina determinados valores predeterminados. body { margin: 0; } elimina el espacio exterior. Una regla general como * { margin: 0; padding: 0; } también elimina el espaciado de los párrafos y la sangría de las listas, que después tendrás que volver a definir. Un enfoque de normalización conserva los valores predeterminados útiles y ajusta las diferencias.

Los controles de formulario suelen tener fuentes del navegador asignadas directamente. Para que coincidan con la página, escribe:

button, input, select, textarea {
  font: inherit;
}

Comienza el documento HTML con <!DOCTYPE html>. Esta declaración selecciona el modo de estándares. Omitirla puede activar el modo de compatibilidad, en el que el comportamiento de compatibilidad antiguo cambia algunos tamaños y otros resultados de CSS.

Inspecciona la propiedad que te sorprende

Haz clic derecho en un elemento y elige Inspeccionar. El panel Estilos muestra las reglas que coinciden, incluidas las reglas del navegador etiquetadas como estilos del agente de usuario. Una declaración tachada ha perdido frente a otra declaración; una advertencia puede señalar CSS no válido. Las declaraciones que prevalecen se eligen propiedad por propiedad, así que una regla puede perder su color y seguir aportando su relleno.

El panel de estilos calculados muestra los valores finales de las propiedades y el contenido, relleno, borde y margen del modelo de caja. Si un encabezado tiene un espacio inesperado, inspecciona su margen antes de añadir relleno a otro elemento. Prueba un cambio directamente en las herramientas de desarrollo y después copia la regla que funciona en tu hoja de estilo: las ediciones realizadas durante la inspección desaparecen al recargar.

Cuando un estilo falle, sigue un orden útil: comprueba que la hoja de estilo se ha cargado, que el selector coincide, que la declaración es válida, que prevalece y que la propiedad afecta a ese tipo de caja. Un width: 200px válido sigue sin dimensionar un span en línea ordinario.

Puntos clave

  • La hoja de estilo del agente de usuario proporciona valores predeterminados legibles antes de que se aplique tu CSS.
  • Elige los elementos HTML por su significado y cambia su aspecto con CSS.
  • Un restablecimiento elimina valores predeterminados que quizá necesites volver a añadir.
  • Usa el modo de estándares con <!DOCTYPE html>.
  • Inspecciona las reglas que coinciden, su validez y las declaraciones tachadas antes de cambiar el código.
  • Guarda en la hoja de estilo los cambios que funcionen en las herramientas de desarrollo.
2

Selecciona exactamente los elementos adecuados

Un selector describe a qué elementos alcanza una regla. Algunos selectores coinciden con nombres o atributos; otros coinciden con un estado, una parte de un elemento o una relación en el árbol HTML. Los pequeños cambios de puntuación importan: un espacio, una coma y un punto indican algo distinto. Parte del elemento al que quieres aplicar estilos y retrocede por las condiciones que lo identifican, para que la regla alcance todos los elementos deseados y deje los demás intactos.

2.1 Selectores de tipo, clase, ID y compuestos

Un selector responde a una pregunta práctica: ¿qué elementos deben recibir estas declaraciones? Comienza con el selector más sencillo que exprese la función deseada. Una clase puede reutilizarse en muchos elementos sin vincular el estilo a una posición concreta de la página.

Selecciona nombres y atributos
SelectorCoincide con
pTodos los párrafos
.warningTodos los elementos con la clase warning
#site-headerEl elemento con el ID site-header
*Todos los elementos

Un selector de tipo es el nombre de un elemento. Un selector de clase empieza con un punto; un selector de ID empieza con #. Estos signos forman parte del selector CSS, no del valor del atributo HTML. Escribe <p class="warning">, no <p class=".warning">.

Un elemento puede tener varias clases separadas por espacios. Tanto <p class="warning"> como <div class="box warning"> coinciden con .warning. Un ID debe ser único dentro de una página. Su alta especificidad también dificulta reemplazar los estilos basados en ID, por lo que las clases suelen ser la principal herramienta para aplicar estilos reutilizables.

Usa nombres que describan una función, como .error-message o .product-card. Un nombre como .red-text resulta engañoso si el diseño cambia a otro color. Los nombres de clase distinguen entre mayúsculas y minúsculas: .Warning y .warning son distintos. Un nombre que comienza con un dígito necesita un escape en un selector CSS; elegir .three-columns evita la forma no válida sin escape .3-columns.

Exige varias condiciones en un mismo elemento

Al escribir selectores juntos se forma un selector compuesto. El mismo elemento debe cumplir todas las partes. p.intro coincide con párrafos que tienen la clase intro. .card.featured coincide con un elemento que tiene ambas clases.

<p class="note important">Doors open at 19:00.</p>
<p class="note">Bring your ticket.</p>
.note { color: #333333; }
.important { font-weight: bold; }
p.note.important { border-left: 4px solid crimson; }

Primero busca las coincidencias. Ambos párrafos tienen note, por lo que ambos reciben texto gris oscuro. Solo el primero tiene important, por lo que solo él aparece en negrita. El selector compuesto añade el borde izquierdo a ese mismo primer párrafo porque es un p con ambas clases. No se necesita ningún contenedor adicional.

Un espacio cambia la tarea: p .intro selecciona un elemento con la clase intro dentro de un párrafo. No selecciona el párrafo en sí. Mantén las partes juntas cuando describan el mismo elemento.

Comparte un bloque de declaraciones

Una coma crea una lista de selectores:

h1, h2, h3 { font-family: Georgia, serif; }

Cada selector coincide de forma independiente con su nivel de encabezado. Sin las comas, h1 h2 h3 buscaría un h3 dentro de un h2 dentro de un h1.

Un selector no válido en una lista de selectores ordinaria puede invalidar toda la regla. h1, h2..title, h3 no aplica estilos a ninguno de esos encabezados porque el punto doble no es válido. Cuando parezca que falta una regla compartida, comprueba todos los selectores de la lista, no solo el correspondiente al elemento que inspeccionaste.

Puntos clave

  • Una clase puede aparecer en muchos elementos y un elemento puede tener varias clases.
  • Un ID debe ser único en la página y tiene una especificidad alta como selector.
  • p.intro exige ambas condiciones en un elemento; p .intro describe un descendiente.
  • Las comas crean selectores independientes que comparten declaraciones.

2.2 Atributos, estados y partes

Algunas condiciones para aplicar estilos ya están presentes en los atributos HTML. Otras dependen de lo que hace el lector o de la posición de un elemento entre sus hermanos. CSS puede seleccionar estas condiciones sin añadir una clase para cada una.

Selecciona un atributo o su valor

Los selectores de atributo usan corchetes. [alt] coincide cuando el atributo está presente, aunque su valor esté vacío. input[type="email"] exige el valor exacto del atributo.

PatrónSignificado
[href^="https"]El valor empieza por https
[href$=".pdf"]El valor termina en .pdf
[href*="example"]El valor contiene example
[class~="note"]Una lista separada por espacios contiene la palabra note
`[lang="en"]`

Añade i antes del corchete de cierre para ignorar las mayúsculas y minúsculas, como en a[href$=".pdf" i]. También selecciona un enlace que termina en .PDF. La coincidencia de palabra completa evita que note coincida por accidente con una palabra de clase más larga, como notebook.

Selecciona un estado o una posición

Una pseudoclase usa dos puntos: :hover, :focus, :checked o :disabled. :focus-visible selecciona un elemento con foco cuando el navegador determina que se necesita un indicador visible, normalmente durante la navegación con teclado.

Un enlace puede estar visitado y tener el puntero encima al mismo tiempo. Para reglas que compiten con la misma especificidad, escribe los estados del enlace en este orden: :link, :visited, :focus, :hover, :active. De lo contrario, una regla posterior para el color de visitado prevalecería sobre una regla anterior para el color al pasar el puntero en un enlace visitado. Por privacidad, los navegadores restringen :visited a ciertos cambios de color; establecer su grosor de fuente no funciona y la transparencia no puede revelar el historial de visitas.

Las pseudoclases estructurales cuentan hermanos. :first-child significa el primer elemento hijo de su padre. En <article><h2>News</h2><p>Update</p></article>, p:first-child no coincide con nada. p:first-of-type sí coincide con ese párrafo.

:nth-child(3) selecciona el tercer hijo. odd selecciona las posiciones 1, 3, 5; even selecciona 2, 4, 6. En :nth-child(3n+1), empieza con n = 0, después 1, 2 y 3: las posiciones seleccionadas son 1, 4, 7 y 10. li:not(:last-child) excluye el último elemento, lo que resulta útil para colocar separadores solo entre elementos.

Aplica estilos a una parte o añade una indicación

Un pseudoelemento usa dos pares de dos puntos. ::first-line y ::first-letter aplican estilos a partes del texto; ::marker a marcadores de lista, ::placeholder al texto de ayuda de un campo y ::selection al texto seleccionado. Las formas más antiguas con un solo par de dos puntos para before, after, first-line y first-letter siguen funcionando.

.required::after {
  content: " *";
  color: crimson;
}

::after crea contenido dentro del elemento seleccionado, después de su contenido existente. ::before lo crea antes. Ambos necesitan un valor de content; incluso content: "" crea una caja decorativa. El texto esencial debe estar en el HTML, donde sigue siendo contenido real del documento. Usa estos pseudoelementos para decoración o pequeñas indicaciones, ya que el texto generado no se puede seleccionar ni copiar de forma fiable como el texto HTML.

Puntos clave

  • Los operadores de atributo distinguen entre presencia, valores exactos, fragmentos de texto y palabras completas.
  • Una pseudoclase selecciona un estado o una posición; un pseudoelemento aplica estilos a una parte o a contenido generado.
  • :first-child cuenta todos los elementos hermanos, mientras que :first-of-type cuenta los del mismo tipo de elemento.
  • Los estados de un enlace pueden coincidir, por lo que las reglas de estado que compiten necesitan un orden deliberado.
  • ::before y ::after necesitan content; la información esencial debe estar en el HTML.

2.3 Relaciones en el árbol HTML

Los elementos HTML forman un árbol. Un elemento situado directamente dentro de otro es su hijo; cualquier elemento anidado dentro de él es un descendiente. Los elementos que comparten un padre son hermanos. Un combinador conecta selectores mediante una de estas relaciones.

Sigue la relación hasta el elemento seleccionado
CombinadorEjemploElemento seleccionado
Espacionav aCualquier enlace en cualquier lugar dentro de un nav
>.menu > liUn li directamente dentro de .menu
+h2 + pUn párrafo inmediatamente después de un h2, con el mismo padre
~h2 ~ pCualquier párrafo posterior que sea hermano de un h2

La parte situada más a la derecha nombra el elemento que recibe las declaraciones. h2 + p aplica estilos al párrafo, no al encabezado. Ambos combinadores de hermanos buscan hacia adelante entre los hermanos; ninguno selecciona un padre ni un hermano anterior.

Sigue una lista anidada
<ul class="menu">
  <li>Guides</li>
  <li>Topics
    <ul>
      <li>Typography</li>
    </ul>
  </li>
</ul>

.menu li coincide con los tres elementos de lista porque los tres son descendientes de la lista exterior. .menu > li coincide solo con «Guides» y «Topics»: su padre es la lista con la clase menu. El padre del elemento «Typography» es el ul interior, que no tiene esa clase.

Esta distinción importa cuando los elementos del nivel superior necesitan mucho relleno, pero los elementos anidados necesitan un espaciado compacto. Un selector de descendiente alcanza todas las profundidades salvo que otra condición lo limite.

Sigue los hermanos posteriores
<article>
  <h2>Opening hours</h2>
  <p>Visit in the morning.</p>
  <aside>Closed on holidays.</aside>
  <p>Booking is optional.</p>
</article>

h2 + p coincide con el primer párrafo, «Visita por la mañana». No salta el aside para buscar otro párrafo. h2 ~ p coincide con ambos párrafos porque ambos siguen al encabezado y comparten su padre. Si un párrafo estuviera dentro del aside, no sería hermano del encabezado y, por esa razón, no coincidiría con ninguno de los dos selectores.

Combina relaciones sin abarcar demasiado

.sidebar > ul a:hover coincide con enlaces que tienen el puntero encima en cualquier lugar dentro de un ul cuyo padre directo tiene la clase sidebar. Léelo desde la derecha: un enlace con el puntero encima; dentro de una lista; esa lista directamente dentro de la barra lateral. El espacio permite elementos intermedios entre la lista y el enlace.

Los combinadores no añaden especificidad. Las partes del selector correspondientes a elementos, clases, ID y otras condiciones sí la añaden. Por eso, las cadenas largas pueden dificultar el mantenimiento de las reglas aunque los símbolos de relación no sumen puntos: cambiar el anidamiento del HTML puede hacer que dejen de coincidir. Una clase descriptiva en el elemento seleccionado, como .menu-link, suele expresar una función reutilizable con más claridad.

Cuando una regla no coincida, inspecciona el árbol real en lugar de contar los espacios visuales. Dos elementos pueden aparecer uno junto a otro en pantalla mientras tienen padres distintos en el HTML. Los comentarios y los espacios en blanco no cuentan como elementos hermanos para estos combinadores.

Puntos clave

  • Un espacio alcanza descendientes a cualquier profundidad; > alcanza hijos directos.
  • + alcanza el elemento hermano inmediatamente posterior; ~ alcanza los hermanos posteriores que coinciden.
  • El selector situado más a la derecha nombra el elemento al que se aplican los estilos.
  • Los combinadores no añaden especificidad, pero las cadenas largas de selectores dependen mucho de la estructura HTML.
3

Determina qué declaración prevalece

Varias reglas pueden coincidir con un elemento y cada una puede aportar una parte distinta de su aspecto. La cascada elige un valor para cada propiedad mediante una serie de comparaciones. La especificidad solo importa después de que las comparaciones de mayor prioridad empaten. La herencia ayuda a que los estilos de texto se transmitan por la página sin necesidad de una regla para cada elemento. Mantener separadas estas funciones facilita mucho explicar y corregir una declaración tachada.

3.1 La cascada, los estilos en línea y las capas

La cascada elige una declaración que prevalece para cada propiedad de cada elemento. No elige una regla completa y descarta todas las demás. Con p { color: gray; font-size: 18px; } y .lead { color: black; }, un párrafo con la clase lead puede tomar su color de la regla de clase y su tamaño de la regla de tipo.

Compara en el orden correcto

Primero elimina las declaraciones que no se aplican: sus selectores deben coincidir y deben cumplirse las condiciones. Después compara el origen y la importancia, incluida la prioridad de la capa de cascada. Los estilos normales en línea del autor prevalecen sobre las reglas normales de sus hojas de estilo. Cuando las declaraciones sigan empatadas en estas etapas anteriores, compara la especificidad; usa el orden de aparición si persiste el empate.

Origen de la declaración normalPrioridad
Autor: el CSS del sitioLa más alta de las tres
Usuario: estilos personalizados de un lectorEntre el autor y el navegador
Agente de usuario: valores predeterminados del navegadorLa más baja

Dos reglas .button de igual prioridad que establecen distintos colores de fondo se resuelven por orden: prevalece la posterior. Las hojas de estilo vinculadas más adelante en el HTML también aparecen más tarde para estos empates. Que un archivo llegue más rápido por la red no hace que aparezca más tarde en la cascada.

Comprende la importancia antes de añadirla

Una declaración en línea como style="color: purple;" prevalece sobre los selectores normales de las hojas de estilo del autor, incluso los que tienen ID. Una declaración de una hoja de estilo del autor con !important puede prevalecer sobre esa declaración normal en línea.

<p class="note" style="color: purple;">Check the time.</p>
p { color: gray !important; }
.note { color: blue; }

El párrafo es gris. La importancia se compara antes que la especificidad del selector o la ventaja normal del estilo en línea. Si el color en línea también tiene !important, esa declaración importante en línea prevalece sobre la regla importante de la hoja de estilo del autor.

Para las declaraciones importantes, la prioridad de los orígenes se invierte: las declaraciones importantes del navegador prevalecen sobre las importantes del usuario, que prevalecen sobre las importantes del autor. Esto protege las reglas que los lectores o navegadores deben imponer. Dentro de un mismo origen, la prioridad del estilo en línea y de la capa sigue estando por delante de la especificidad y el orden en el código fuente.

Usar !important para cada conflicto hace que reemplazar estilos sea cada vez más difícil. Prefiere un selector más sencillo o un orden deliberado. Reemplazar reglas de terceros que no puedes editar puede justificar una declaración importante; debe ser una excepción meditada.

Agrupa reglas en capas de cascada
@layer reset, base, components;
@layer base {
  p { margin: 0 0 1rem; }
}

Esto declara el orden de las capas antes de sus reglas. Para las declaraciones normales, las capas posteriores prevalecen sobre las anteriores independientemente de la especificidad del selector. Las reglas normales fuera de cualquier capa prevalecen sobre las reglas normales en capas. Por tanto, una regla de componente de baja especificidad puede reemplazar una regla base de alta especificidad sin añadir ID.

Las declaraciones importantes invierten ese orden de capas: las capas anteriores prevalecen sobre las posteriores y las declaraciones importantes en capas prevalecen sobre las importantes sin capa. Esta inversión conserva las protecciones importantes de las capas fundamentales. Al investigar un conflicto, determina qué grupo de origen, importancia y capa prevalece antes de dedicar tiempo a contar las partes del selector.

Puntos clave

  • La cascada selecciona las declaraciones por separado para cada propiedad.
  • El origen, la importancia y la prioridad del estilo en línea y de la capa preceden a la especificidad.
  • Los estilos normales en línea del autor prevalecen sobre las reglas normales de sus hojas de estilo.
  • !important cambia la prioridad; no añade especificidad.
  • Para las declaraciones normales prevalecen las capas posteriores y las reglas sin capa; para las importantes se invierte la prioridad.
  • El orden de aparición solo resuelve las declaraciones después de un empate en las comparaciones anteriores.

3.2 Especificidad sin adivinar

La especificidad mide el peso de selección de un selector. Compárala solo entre las declaraciones que sigan empatadas en las etapas anteriores de la cascada, incluidos el origen, la importancia y la prioridad de la capa y del estilo en línea.

Cuenta tres columnas

Escribe la especificidad como ID-CLASE-TIPO, por ejemplo 0-1-1.

ColumnaCuenta cada uno de estos
IDSelectores de ID como #menu
CLASEClases, selectores de atributo y pseudoclases ordinarias
TIPOSelectores de tipo y pseudoelementos

El selector universal * y los combinadores no suman nada. Para a[href^="https"]:focus, cuenta ningún ID, dos partes de CLASE (el atributo y :focus) y una parte de TIPO (a). El resultado es 0-2-1.

Más ejemplos: .nav a es 0-1-1; ul li a:hover es 0-1-3; #main .card > h2 es 1-1-1; article p::first-line es 0-0-3. Un pseudoelemento cuenta en la columna TIPO aunque su nombre empiece con dos pares de dos puntos.

Compara desde la izquierda

Compara primero los ID. Si empatan, compara CLASE; si estos empatan, compara TIPO. Solo las ternas iguales pasan a compararse por el orden en el código fuente. Son recuentos separados, no cifras de un número decimal: 0-11-0 sigue perdiendo frente a 1-0-0. Las clases adicionales no se trasladan a la columna ID.

<nav id="site-nav">
  <a class="active" href="/">Home</a>
</nav>
#site-nav a { color: white; }
nav a.active { color: orange; }
.active { color: yellow; }

Supón que son declaraciones normales de la misma capa del autor. Sus puntuaciones son 1-0-1, 0-1-2 y 0-1-0. La primera prevalece, por lo que el enlace es blanco. Su columna ID resuelve la comparación antes de que importen los recuentos de clases o tipos.

#site-nav .active prevalecería con 1-1-0, pero un diseño basado en clases es más fácil de ampliar: .site-nav a puede proporcionar el estilo base y .site-nav .active cambiar el enlace activo. Esto mantiene la especificidad baja y bastante uniforme.

Conoce las excepciones funcionales

:is(), :not() y :has() no suman peso por la función en sí. Su argumento más específico aporta el peso. Así, li:not(.done) es 0-1-1 y :is(#intro, p) a es 1-0-1. Cuenta el selector más específico de la lista de argumentos, no el que parezca visualmente más cercano al elemento.

:where() y todo lo que contiene siempre aportan cero. Por eso, :where(#main) p tiene una puntuación de 0-0-1. Es útil para valores predeterminados que deben ser fáciles de reemplazar.

La distancia a un antecesor no cuenta. Tanto body h1 como html h1 tienen una puntuación de 0-0-2, por lo que una declaración posterior resuelve su empate. Los estilos en línea se tratan antes de la especificidad de los selectores y !important pertenece a la importancia. Ninguno de los dos es otra parte ordinaria del selector que se deba sumar a la terna.

Puntos clave

  • Cuenta los ID, después las clases, atributos y pseudoclases, y después los tipos y pseudoelementos.
  • Compara las ternas columna por columna; una columna inferior no puede superar a una superior.
  • Los combinadores y * suman cero.
  • :is(), :not() y :has() toman su argumento más específico; :where() aporta cero.
  • La distancia al antecesor no afecta a la especificidad.

3.3 Valores heredados y restablecimientos deliberados

La herencia permite que un hijo reciba un valor de su padre cuando esa propiedad se hereda normalmente y ninguna declaración proporciona un valor distinto al hijo. Por eso, una sola regla para el cuerpo puede establecer el color de texto y la fuente de gran parte de una página.

Distingue el texto heredado de la configuración de caja

La mayoría de las propiedades de texto se heredan: color, las propiedades de fuente, line-height, letter-spacing, text-align y text-transform. Los estilos de lista y visibility también se heredan. Las propiedades de caja como margen, relleno, borde, ancho, altura, fondos, visualización y cálculo del tamaño de la caja no se heredan.

body { color: #222222; font-family: Georgia, serif; }
h1, h2 { font-family: Arial, sans-serif; }
footer { color: #666666; }

El texto ordinario del cuerpo usa Georgia en gris oscuro. Los encabezados reciben la familia de fuentes asignada directamente y conservan el color heredado. El texto del pie de página hereda Georgia mientras su color cambia localmente.

El fondo transparente de un hijo deja ver el fondo del padre; eso no significa que el hijo haya heredado el color de fondo. Del mismo modo, los hijos de una caja con borde no reciben automáticamente sus propios bordes.

Las asignaciones directas prevalecen sobre los valores heredados

Con #content { color: red; } y p { color: blue; }, un párrafo dentro del área de contenido es azul. La especificidad del ID no compite con la regla del párrafo porque las declaraciones seleccionan elementos distintos. El párrafo ya tiene un color asignado directamente, por lo que no necesita el rojo heredado.

Los hijos suelen heredar valores calculados. Si una sección tiene font-size: 20px y su hijo tiene font-size: 0.8em, el valor calculado de ese hijo es 16px. Un párrafo dentro de él hereda 16px; no vuelve a multiplicar por 0.8. Una altura de línea sin unidad es útil porque el valor heredado sigue siendo un multiplicador del tamaño de fuente de cada hijo.

Elige qué significa un restablecimiento
Palabra claveEfecto
inheritToma el valor calculado del padre
initialUsa el valor inicial de la propiedad CSS
unsetHereda una propiedad heredada; inicializa una no heredada
revertRevierte los estilos del origen actual
revert-layerRevierte los estilos de la capa de cascada actual

En el CSS del autor, revert deja que se apliquen los estilos de origen de usuario o del navegador. La diferencia importa en un div: display: initial da el valor inicial inline de la propiedad, mientras que display: revert restaura su visualización block habitual del navegador. Un valor inicial pertenece a la propiedad CSS; un valor predeterminado del navegador puede depender del elemento HTML.

inherit funciona incluso en una propiedad que normalmente no se hereda, como border: inherit. button, input { font: inherit; } reemplaza las fuentes asignadas directamente a los controles por la fuente de su padre. all: unset restablece casi todas las propiedades a la vez, lo que también elimina un aspecto integrado útil.

Una excepción aparente es el subrayado. text-decoration no se hereda, pero el subrayado de un padre se dibuja a través de sus descendientes en línea. Establecer text-decoration: none en un span anidado no puede borrar la línea del padre. Elimínala del padre y aplícala solo al texto que deba llevarla.

Puntos clave

  • La mayoría de las propiedades de texto se heredan; las propiedades de caja generalmente no.
  • Un valor asignado directamente al hijo tiene prioridad sobre un valor heredado del padre.
  • initial significa el valor inicial de CSS; revert puede restaurar los valores predeterminados del navegador para un elemento.
  • unset elige la herencia o la inicialización según la propiedad.
  • revert-layer elimina la capa actual de la decisión sobre esa propiedad.
  • El subrayado de un padre se dibuja a través de los descendientes en línea sin heredarse.
4

Especifica colores y elige unidades útiles

Los valores de CSS necesitan un significado claro además de una escritura válida. Un color se puede expresar por su nombre, por los valores de sus canales o por su tono, y la transparencia cambia lo que el lector ve al final. Una longitud puede tomar como referencia el texto, un contenedor o la ventana del navegador. Aprende qué referencia usa cada unidad y calcula el valor antes de comprobarlo en el navegador. Estas elecciones ayudan a que los estilos sigan siendo legibles cuando cambian el contenido y la configuración del lector.

4.1 Valores de color, alfa y contraste

color establece el color del texto. Los fondos, bordes, contornos, decoraciones y sombras también aceptan valores de color. Un mismo color puede escribirse de varias formas; elige una notación que facilite comprender el cambio deseado.

Interpreta nombres y canales hexadecimales

CSS tiene unos 150 colores con nombre, entre ellos navy, tomato y rebeccapurple. Los nombres son prácticos para pruebas rápidas, pero su significado cotidiano puede sorprenderte: green es #008000, mientras que el verde puro brillante es lime, o #00ff00. Los valores exactos eliminan esa incertidumbre.

Un color hexadecimal de seis dígitos tiene tres pares de canales: rojo, verde y azul. Cada par va de 00 a ff, equivalente a los valores de 0 a 255. Todos los valores en cero dan negro; todos al máximo dan blanco. Los pares iguales producen un gris, como en #808080.

La notación hexadecimal de tres dígitos duplica cada dígito: #f0a se expande a #ff00aa. No añade ceros. Un color como #1e90ff no puede abreviarse porque no todos los pares repiten su dígito. Las letras hexadecimales mayúsculas y minúsculas representan los mismos valores.

Para convertir un par, multiplica su primer dígito por 16 y suma el segundo. Las letras de la a a la f representan los valores del 10 al 15. Para #1e90ff, 1e da 30, 90 da 144 y ff da 255. La notación RGB equivalente es rgb(30 144 255). El código más antiguo puede usar comas o rgba(); esas formas siguen funcionando.

Describe el tono o la transparencia

hsl() indica el tono, la saturación y la luminosidad. El tono es un ángulo: 0 o 360 es rojo, 120 verde y 240 azul. La saturación va del gris al 0 % al color pleno al 100 %. La luminosidad va del negro al 0 % al blanco al 100 %. Un tono puro tiene una saturación del 100 % y una luminosidad del 50 %, como en hsl(0 100% 50%). Cambiar solo la luminosidad crea versiones oscuras y pálidas relacionadas.

Un valor alfa va después de una barra: rgb(0 0 0 / 0.6) es negro con un 60 % de opacidad. Cero es totalmente transparente y uno totalmente opaco. La notación hexadecimal de ocho dígitos añade un par para el alfa: #00000080 tiene 128 de 255, aproximadamente un 50 % de alfa. transparent es totalmente transparente.

.notice {
  color: white;
  background-color: rgb(0 0 0 / 0.6);
}

Aquí solo el fondo es parcialmente transparente. opacity: 0.6, en cambio, haría parcialmente transparente todo el elemento, incluidos su texto y sus hijos. La diferencia importa cuando quieres texto opaco y legible sobre una superficie coloreada.

Reutiliza el color y comprueba el resultado

currentColor significa el color de texto del propio elemento. Con color: #0055aa; border: 2px solid currentColor;, el borde sigue el color del texto. Cambiar el color del texto también cambia ese borde sin repetir un valor de color.

El nivel AA de las WCAG 2.2 exige al menos 4,5:1 de contraste para texto normal y 3:1 para texto grande, de unos 24px o unos 18,5px en negrita. #767676 sobre blanco da aproximadamente 4,54:1; #999999 sobre blanco da aproximadamente 2,85:1 y no cumple ninguno de los dos umbrales. Usa un comprobador de contraste o las herramientas de color del navegador con el par real de color de primer plano y fondo, incluido el efecto de la transparencia.

Puntos clave

  • Los colores hexadecimales codifican rojo, verde y azul; la notación de tres dígitos repite cada dígito.
  • rgb() expresa canales, mientras que hsl() expresa tono, saturación y luminosidad.
  • El alfa de un color de fondo afecta a ese color; opacity hace parcialmente transparente todo el elemento.
  • currentColor sigue el color de texto del elemento.
  • El texto normal necesita al menos un contraste de 4,5:1 en WCAG AA; el texto grande necesita 3:1.

4.2 Píxeles y longitudes relativas

Una longitud combina un número con una unidad, como 16px o 1.5rem. No hay espacio entre ellos. Un ancho distinto de cero necesita una unidad: width: 300; no es válido. El cero puede omitir su unidad. Algunas propiedades aceptan deliberadamente números sin unidad, entre ellas line-height: 1.5, opacity: 0.8 y font-weight: 700.

Relaciona la unidad con su referencia
UnidadReferencia
pxUn píxel de referencia CSS
em en font-sizeEl tamaño de fuente del padre
em en espaciado y otras longitudesEl tamaño de fuente del propio elemento
remEl tamaño de fuente del elemento raíz
%Una referencia determinada por la propiedad
vw, vhEl ancho o la altura del área de visualización
chEl ancho del carácter cero de la fuente

Un píxel CSS no es necesariamente un punto físico de la pantalla. Las pantallas de alta densidad pueden usar varios píxeles del dispositivo para un píxel CSS. Las relaciones fijas entre unidades incluyen 1in = 96px = 2,54cm y 1pt = 1/72in. Así, 12pt equivalen a 16px y 1cm equivale aproximadamente a 37,8px. Esas conversiones no garantizan una medida física en todas las pantallas.

Calcula valores relativos a la fuente

Supón que un padre tiene una fuente de 16px y su hijo tiene font-size: 1.25em; padding: 2em;. Calcula primero el tamaño de fuente: 1,25 por 16px da 20px. El relleno usa entonces el tamaño del propio hijo, por lo que 2 por 20px da 40px en cada lado.

Los tamaños de fuente en em anidados pueden acumularse. Con li { font-size: 1.25em; }, tres niveles anidados que parten de 16px pasan a ser 20px, 25px y 31,25px. En cambio, 1.25rem da 20px en cada nivel cuando la raíz es de 16px.

Dejar el tamaño raíz en el valor predeterminado del navegador, o establecerlo como porcentaje, permite que el texto relativo responda cuando un lector cambie ese valor predeterminado. Un html { font-size: 16px; } fijo anula esa configuración. Un patrón práctico es usar rem para el tamaño de fuente y em para el relleno de un botón, de modo que su espaciado crezca con su propio texto.

Comprueba los porcentajes y el área de visualización

La propiedad determina la referencia del porcentaje. Un bloque contenedor proporciona una referencia para el tamaño de la caja; en estos ejemplos de flujo normal suele ser el área de contenido del padre. Un hijo con width: 40% en un bloque contenedor de 600px mide 240px de ancho antes de añadir cualquier relleno o borde con el modelo content-box. font-size: 150% usa el tamaño de fuente del padre. Incluso el relleno y los márgenes porcentuales superior e inferior usan el ancho del bloque contenedor, no su altura.

1vw es el 1 % del ancho del área de visualización; 1vh es el 1 % de su altura. En un área de visualización de 1280 por 800 píxeles CSS, 50vw equivale a 640px y 10vh a 80px. 100vw puede incluir el ancho de la barra de desplazamiento y producir desbordamiento horizontal donde el 100% del padre sí cabría.

max-width: 65ch da a una columna de texto un ancho relacionado con la fuente. Es una medida aproximada de longitud de lectura, no una garantía de que cada línea tenga exactamente 65 caracteres.

Combina unidades con un cálculo

width: calc(100% - 40px); resta una cantidad fija de un tamaño relativo. Mantén los espacios alrededor de + y -; calc(100%-40px) no es válido. Los navegadores calculan las longitudes relativas a la fuente en píxeles, mientras que los porcentajes del tamaño del contenedor se resuelven durante el cálculo de la disposición. Las herramientas de desarrollo muestran los tamaños resultantes para que puedas comprobar tanto la referencia como la operación.

Puntos clave

  • Une los números directamente a sus unidades; el cero puede ir solo.
  • em usa el padre para el tamaño de fuente y el propio elemento para otras longitudes.
  • rem sigue la raíz y evita la acumulación de tamaños de fuente anidados.
  • Las referencias de los porcentajes dependen de la propiedad; el relleno porcentual usa el ancho del contenedor.
  • Las unidades relativas al área de visualización siguen la ventana; ch sigue la fuente.
  • Usa espacios alrededor de la suma y la resta dentro de calc().
5

Mide cajas y controla el espaciado

Cada elemento visible ocupa espacio como una caja. El ancho que escribes puede describir solo el contenido o toda la caja hasta el borde, y los márgenes añaden otra capa de espacio por fuera. El tipo de visualización cambia qué propiedades de tamaño y espaciado tienen efecto. Aprende a calcular una caja antes de cambiar sus dimensiones y después explica sorpresas habituales, como una tarjeta de ancho completo que se desborda, un enlace en línea que ignora el ancho o dos márgenes verticales que se combinan.

5.1 Contenido, relleno, borde y margen

De dentro hacia fuera, una caja tiene contenido, relleno, borde y margen. El contenido incluye texto, imágenes o elementos hijos. El relleno crea espacio alrededor de ese contenido. El borde rodea el relleno; el margen separa la caja hasta el borde de sus vecinas.

Un fondo rellena el contenido y el relleno y se extiende por debajo del borde, pero nunca colorea el margen. Usa relleno cuando el espacio deba formar parte de una tarjeta de color. Usa margen para el espacio exterior. Los márgenes pueden ser negativos; el relleno no.

Interpreta las propiedades abreviadas de espaciado

margin, padding y border-width aceptan de uno a cuatro valores:

ValoresLados establecidos
10pxLos cuatro
10px 20pxArriba y abajo, después izquierda y derecha
10px 20px 30pxArriba, izquierda y derecha, abajo
10px 20px 30px 40pxArriba, derecha, abajo, izquierda

El orden de cuatro valores sigue el sentido de las agujas del reloj desde arriba. Usa propiedades individuales como padding-left para cambiar un solo lado después de la propiedad abreviada. No interpretes el segundo valor de una forma de dos valores como el inferior: establece ambos lados horizontales.

Calcula la caja de contenido predeterminada
.card {
  width: 300px;
  padding: 20px;
  border: 5px solid;
  margin: 10px;
}

El valor inicial de box-sizing es content-box. El ancho declarado de 300px cubre solo el contenido. Suma dos veces 20px de relleno y dos veces 5px de borde: la caja hasta el borde mide 350px de ancho. Suma los dos márgenes de 10px para obtener 370px de espacio horizontal.

La altura funciona igual cuando se establece explícitamente, pero el texto suele necesitar una caja que pueda crecer. Dejar height: auto evita encerrar contenido cambiante en una altura fija.

Incluye el relleno y el borde en el ancho

Con box-sizing: border-box, el mismo ancho declarado incluye el relleno y el borde. La caja hasta el borde sigue midiendo 300px; resta 40px de relleno y 10px de borde para obtener un área de contenido de 250px. Los márgenes permanecen fuera y dan un espacio horizontal de 320px.

Un restablecimiento habitual aplica este modelo a los elementos y a sus partes generadas:

*, *::before, *::after { box-sizing: border-box; }

box-sizing no se hereda automáticamente, por lo que la regla selecciona las cajas directamente.

Un hijo de ancho completo permite ver la diferencia con facilidad. En un contenedor de 600px, width: 100%; padding: 0 20px; da una caja hasta el borde de 640px con el cálculo content-box, antes de añadir cualquier borde. Con el cálculo border-box, el mismo ancho declarado de 600px incluye el relleno y cabe en el contenedor.

Deja que el contenido quepa sin problemas

min-height establece un límite inferior y permite que la caja crezca. max-width: 800px permite que un bloque de ancho automático se reduzca en un contenedor estrecho e impide que supere los 800px de ancho.

Si el contenido supera una caja fija, overflow controla el resultado: visible deja que se desborde, hidden lo recorta, scroll solicita barras de desplazamiento y auto permite el desplazamiento cuando es necesario. pre { overflow: auto; } da a una línea larga de código su propia área de desplazamiento. Recortar no es una buena solución para texto que los lectores siguen necesitando; comprueba primero si el tamaño fijo es necesario.

Usa el diagrama de caja del panel de estilos calculados para comparar los valores de contenido, relleno, borde y margen del navegador con tu cálculo.

Puntos clave

  • El relleno está dentro del borde; el margen está fuera y permanece transparente.
  • El ancho content-box excluye el relleno y el borde.
  • El ancho border-box incluye el relleno y el borde, pero nunca el margen.
  • Las propiedades abreviadas de espaciado siguen el sentido de las agujas del reloj desde arriba; las formas más cortas comparten valores entre lados.
  • Usa alturas flexibles y límites de tamaño para adaptarte al contenido cambiante.
  • overflow controla el contenido que supera la caja.

5.2 Visualización, centrado y colapso de márgenes

El tipo de visualización determina cómo se integra una caja en su entorno. Un bloque normalmente comienza en una línea nueva y ocupa el ancho disponible cuando su ancho es automático. Una caja en línea ordinaria fluye dentro del texto y se dimensiona según su contenido. Una caja de bloque en línea conserva la posición en línea y acepta dimensiones explícitas.

Elige el comportamiento que necesitas
VisualizaciónAncho y alturaComportamiento del espaciado
blockSe aplicanLos márgenes y el relleno separan las cajas
inline ordinarioNo dimensionan la cajaEl espaciado horizontal afecta al texto cercano
inline-blockSe aplicanEl espaciado vertical y horizontal afecta a la disposición circundante

En elementos en línea ordinarios como span y a, los márgenes superior e inferior no tienen efecto. El relleno y los bordes verticales se dibujan, pero no separan las líneas vecinas, por lo que pueden superponerse a ellas. El relleno, los bordes y los márgenes horizontales sí ocupan espacio a lo largo de la línea.

nav a {
  display: inline-block;
  padding: 8px 16px;
}

Estos enlaces permanecen en una línea mientras sus cajas con relleno reservan espacio vertical. display: block daría a cada enlace su propia línea. Las imágenes son un caso especial en línea: aceptan ancho y altura. Su alineación predeterminada con la línea base puede dejar un pequeño espacio debajo para los trazos descendentes de las letras; img { display: block; } elimina ese espacio de la línea base.

display: none elimina la caja y su espacio, y hace que los lectores de pantalla no la lean. visibility: hidden la oculta y conserva su espacio.

Centra una caja o centra su contenido
.page {
  max-width: 960px;
  margin: 0 auto;
}

En un contenedor más ancho, el bloque deja de crecer a los 960px y los dos márgenes horizontales automáticos reparten por igual el espacio restante. Un bloque que ocupa todo el contenedor no tiene espacio horizontal sobrante que repartir. Los márgenes automáticos no centran una caja en línea ordinaria y los márgenes verticales automáticos en el flujo normal de bloques se resuelven en cero.

text-align: center cumple otra función: centra el contenido en línea dentro de un bloque. Una caja de párrafo centrada puede seguir teniendo el texto alineado a la izquierda; un párrafo de ancho completo puede tener el texto centrado sin convertirse en una caja más estrecha y centrada.

Reconoce el colapso de márgenes verticales

En el flujo normal de bloques, los márgenes superior e inferior contiguos pueden colapsar. Dos márgenes positivos se convierten en el mayor de los dos. Un encabezado con un margen inferior de 24px seguido de un párrafo con un margen superior de 16px tiene un espacio de 24px, no de 40px. Los márgenes horizontales no colapsan.

Con márgenes positivos y negativos, combina el mayor positivo con el más negativo: 20px y −8px se convierten en 12px. Si todos son negativos, prevalece el más negativo. Una caja vacía sin contenido, altura, borde ni relleno que los separe puede hacer colapsar sus propios márgenes superior e inferior.

El margen superior de un primer hijo también puede colapsar a través de un padre sin borde, relleno ni contenido anterior que los separe. Entonces el espacio aparece fuera del fondo del padre. Añade relleno o un borde al padre, o elimina el margen superior del hijo. Unas condiciones similares permiten que colapse el margen inferior del último hijo; una altura o altura mínima del padre puede impedir este último caso.

Los márgenes de las cajas de bloque en línea no colapsan, como tampoco lo hacen los de los elementos flex o de cuadrícula ni los de las cajas flotantes o posicionadas de forma absoluta. Un patrón sencillo de espaciado de texto establece los márgenes superiores en cero y usa márgenes inferiores, con relleno para el espacio dentro de los contenedores.

Puntos clave

  • Las cajas en línea ordinarias ignoran el ancho y la altura establecidos; las cajas de bloque en línea los aceptan.
  • Los márgenes horizontales automáticos centran un bloque más estrecho; text-align centra su contenido en línea.
  • Los márgenes verticales positivos de bloques adyacentes pueden colapsar en el valor mayor.
  • El relleno del padre puede separar el margen de un primer hijo del margen del padre.
  • display: none elimina el espacio; visibility: hidden lo conserva.
6

Aplica estilos a texto legible y superficies acabadas

Las fuentes, el interlineado y los estados de los enlaces determinan la comodidad con que un lector puede usar una página. Los fondos, bordes y sombras distinguen sus cajas sin cambiar su significado. Crea estilos de texto con alternativas, mantén el contenido esencial en el HTML y elige una decoración que apoye el contenido. Las mismas reglas de caja y cascada siguen aplicándose: una propiedad abreviada puede restablecer un grosor de fuente, un borde puede añadir ancho y un contorno de foco puede mostrar un estado sin mover nada.

6.1 Listas de fuentes alternativas y fuentes web

Elegir una fuente implica tener un plan alternativo. Los dispositivos tienen distintas fuentes instaladas y una fuente descargada puede llegar después del texto. Una lista de fuentes alternativas mantiene la página legible y conserva un estilo adecuado.

Crea una lista de fuentes
body {
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 1rem;
}

El navegador prueba los nombres de familia en orden y usa una fuente disponible. Pon comillas a los nombres que contienen espacios. Deja las familias genéricas sin comillas: "sans-serif" solicita una fuente con ese nombre exacto; sans-serif pide al navegador una fuente genérica adecuada.

Las opciones genéricas incluyen serif, sans-serif, monospace, cursive, fantasy y system-ui. La última usa la fuente de interfaz del sistema. Las fuentes que suelen llamarse seguras para la web, como Arial, Georgia y Verdana, son comunes, pero no están garantizadas. Aun así, debe haber una familia genérica como alternativa al final.

font-size acepta longitudes, porcentajes y palabras clave de tamaño. Con una raíz de 16px, 1rem da 16px y 2.5rem da 40px. Los tamaños relativos pueden seguir la configuración del lector.

Establece con cuidado el grosor, el estilo y la propiedad abreviada

font-weight: normal equivale a 400; bold equivale a 700. Valores como 300 y 600 solicitan otros grosores cuando la fuente los proporciona. Si falta el grosor solicitado, el navegador elige uno disponible o puede generar una negrita artificial. Si solo están cargados 400 y 700, solicitar 300 usa 400. bolder y lighter son relativos al padre.

font-style: italic solicita una variante en cursiva; normal elimina ese estilo. La propiedad abreviada font necesita tanto el tamaño como la familia:

blockquote {
  font: italic 700 1.125rem/1.6 Georgia, serif;
}

El estilo, la variante y el grosor opcionales van antes del tamaño. Una barra une la altura de línea al tamaño y la familia va al final. Omitir el tamaño o la familia invalida la propiedad abreviada. Las demás configuraciones de fuente omitidas se restablecen: font: 1rem Arial, sans-serif; devuelve un grosor anterior en negrita al valor normal.

Carga un archivo de fuente
@font-face {
  font-family: "Inter";
  src: url("fonts/inter-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
body { font-family: "Inter", Arial, sans-serif; }

@font-face asigna a un archivo un nombre de familia CSS. Usa ese nombre declarado en la lista, no el nombre del archivo. Las rutas relativas de los archivos parten de la ubicación de la hoja de estilo. WOFF2 es un formato comprimido compatible con los navegadores actuales.

Las fuentes estáticas suelen necesitar archivos y reglas independientes para cada grosor y estilo. Las fuentes variables pueden contener un intervalo de grosores en un solo archivo. Carga los archivos que el diseño realmente use. font-display: swap muestra una fuente alternativa de inmediato y la reemplaza cuando la fuente web está disponible.

Un servicio de fuentes puede proporcionar un enlace HTML y la declaración de familia; alojar la fuente en tu propio servidor evita solicitarla a un servidor de terceros. Comprueba que la licencia permita usarla en sitios web. Si la fuente no tiene el aspecto esperado, inspecciona la fuente renderizada y la solicitud del archivo. Un nombre de familia CSS mal escrito activa una alternativa sin avisar, por lo que el texto legible por sí solo no demuestra que se haya cargado la fuente deseada.

Puntos clave

  • Escribe una lista de fuentes que termine con una familia genérica sin comillas.
  • El grosor de la fuente depende de las variantes o los intervalos disponibles.
  • La propiedad abreviada font exige tamaño y familia y restablece las configuraciones omitidas.
  • @font-face define un nombre de familia y el archivo que la proporciona.
  • font-display: swap mantiene visible el texto con una fuente alternativa mientras se carga una fuente web.

6.2 Interlineado, listas y estados de los enlaces

Los estilos de texto deben adaptarse a los cambios de tamaño, contenido y método de entrada. Comienza con el interlineado y anchos legibles; después añade detalles a las listas y los enlaces que indiquen a los lectores cómo funciona el contenido.

Deja que la altura de línea siga cada tamaño de fuente

Usa una altura de línea sin unidad, como line-height: 1.5. Con texto principal de 16px crea líneas de 24px. Los hijos heredan el número, por lo que un encabezado de 32px obtiene líneas de 48px. En cambio, un valor de 1.5em o 150% en el padre se calcula allí como 24px, y un hijo puede heredar esa altura de línea fija de 24px aunque su propio texto sea mayor. El valor predeterminado normal depende de la fuente y suele rondar 1,2.

body { font: 1.125rem/1.6 Georgia, serif; color: #222222; }
h1 { font: 700 2.25rem/1.2 Arial, sans-serif; }
p { max-width: 65ch; }

Con una raíz de 16px, el texto principal mide 18px con líneas de 28,8px; el encabezado mide 36px con líneas de 43,2px. El límite del párrafo evita líneas muy largas en una pantalla ancha.

text-align posiciona el contenido en línea dentro de un bloque. Sus valores incluyen left, right, center, justify, start y end; start y end siguen la dirección de escritura. No mueve el bloque en sí. La justificación en columnas estrechas puede crear espacios grandes entre palabras.

Cambia la presentación sin reescribir el texto

text-transform puede mostrar palabras en mayúsculas, minúsculas o con iniciales mayúsculas sin cambiar el texto HTML. letter-spacing, word-spacing y text-indent controlan distintos tipos de espacio. text-shadow: 1px 1px 2px rgb(0 0 0 / 0.5); indica desplazamiento horizontal, desplazamiento vertical, desenfoque y color.

text-decoration añade subrayados, líneas superiores o tachados. También puede establecer el estilo y el color, como en underline wavy crimson. El grosor y la separación del subrayado permiten ajustar la línea. Los lectores esperan que el texto subrayado sea un enlace, así que reserva esa indicación para los enlaces.

Aplica estilos a las listas sin dejar sangría accidental

list-style-type elige marcadores como disc, square, decimal o lower-alpha. list-style-position: outside mantiene los marcadores fuera del bloque de texto; inside los coloca en la primera línea, por lo que las líneas que continúan pueden comenzar debajo del marcador. list-style-image proporciona un marcador de imagen y li::marker puede colorear solo el marcador.

Para una lista de navegación sencilla, usa .menu { list-style: none; margin: 0; padding: 0; }. Eliminar solo los marcadores deja el relleno inicial predeterminado de la lista. list-style: square inside es una propiedad abreviada que combina configuraciones del marcador.

Mantén visibles los enlaces durante su uso

Ordena las reglas de estado de igual especificidad como link, visited, focus, hover, active. Un enlace puede estar visitado y tener el puntero encima a la vez; el orden en el código fuente decide entre sus declaraciones de color. :active significa durante la activación, no la página actual.

Mantén los enlaces reconocibles por algo más que el color, normalmente con un subrayado en el texto corriente. Proporciona un indicador claro del foco del teclado:

a:focus-visible {
  outline: 3px solid #f2a900;
  outline-offset: 2px;
}

No elimines el contorno de foco salvo que otro estilo de foco visible lo sustituya. Un contorno no ocupa espacio en el modelo de caja, por lo que esta indicación no desplaza el texto circundante.

Puntos clave

  • La altura de línea sin unidad transmite un multiplicador que sigue el tamaño de fuente de cada hijo.
  • text-align mueve el contenido en línea dentro de un bloque, no el bloque en sí.
  • La transformación de texto cambia el aspecto sin cambiar las palabras del HTML.
  • Eliminar los marcadores de lista no elimina el relleno predeterminado de la lista.
  • Los estados de los enlaces pueden coincidir; mantén los enlaces reconocibles y el foco del teclado visible.
  • Los contornos muestran el foco sin cambiar las dimensiones de la caja.

6.3 Imágenes de fondo, escalado y capas

Un fondo se sitúa detrás del contenido de una caja. Su color rellena el contenido y el relleno y se extiende por debajo del borde; el margen permanece transparente. Una imagen se dibuja encima del color de fondo, por lo que un color puede proporcionar una superficie fiable mientras se carga la imagen.

Resuelve la ruta desde la hoja de estilo
.hero {
  background-color: #1a2b3c;
  background-image: url("../images/hero.jpg");
}

Si el CSS está en css/styles.css y la imagen está en la carpeta images del nivel principal del sitio, .. sale de css antes de entrar en images. Una URL de imagen en CSS parte del archivo CSS, a diferencia del enlace a la hoja de estilo, que parte del archivo HTML. Comprueba la solicitud de la imagen si una regla válida solo muestra su color alternativo.

Los fondos son decoración. Un lector de pantalla no los anuncia como imágenes. Coloca una imagen informativa en el HTML con texto alternativo significativo. Un color alternativo cercano al tono principal de la imagen también ayuda a que el texto siga siendo legible si la imagen tarda en cargar o falta.

Controla la repetición, la escala y la posición

Inicialmente, las imágenes se repiten a su tamaño natural. no-repeat usa una copia; repeat-x crea una fila y repeat-y una columna. space distribuye mosaicos completos con espacios entre ellos, mientras que round ajusta los mosaicos para que quepa un número entero.

TamañoResultado
coverLlena toda la caja, conservando las proporciones; puede haber recorte
containAjusta toda la imagen, conservando las proporciones; pueden quedar espacios
200px 100pxEstablece ambas dimensiones explícitamente
50% autoEstablece un ancho relativo y conserva la relación de aspecto de la imagen

Para una caja de 800px por 400px y una imagen cuadrada de 1000px, cover escala la imagen a un cuadrado de 800px, dejando 400px de altura de la imagen fuera de la caja. Contain la escala a un cuadrado de 400px; con no-repeat, quedan 400px del ancho de la caja sin cubrir. Establecer solo contain no desactiva la repetición.

La posición inicial es la parte superior izquierda. background-position: center centra una imagen; right 20px bottom 10px la desplaza desde esos bordes. El valor horizontal va primero. Center junto con cover mantiene visible el centro cuando es necesario recortar.

Genera y superpone imágenes

Un degradado es una imagen, así que colócalo en background-image:

background-image: linear-gradient(to right, #1e90ff, #8a2be2);

El primer color está a la izquierda y el segundo a la derecha. Los ángulos y las paradas con posición ofrecen más control; radial-gradient(circle, white, steelblue) se extiende desde el centro hacia fuera. Un degradado en background-color no es válido.

Separa varias imágenes con comas; la primera queda encima. Un degradado negro translúcido colocado antes de una foto puede oscurecer la imagen sin hacer transparente el texto.

Usa la propiedad abreviada de forma deliberada

background: url("hero.jpg") center / cover no-repeat #1a2b3c; combina una imagen, posición, tamaño, repetición y color. El tamaño sigue a la posición después de una barra. Solo la última capa puede tener un color. Las configuraciones de fondo omitidas se restablecen, por lo que un background: white; posterior elimina una imagen anterior.

background-attachment usa inicialmente scroll, que se mueve con el elemento al desplazarse la página. fixed mantiene el fondo unido al área de visualización. Prueba la caja y el texto reales después de añadir decoración; el escalado y el recorte no deben ocultar información que los lectores necesitan.

Puntos clave

  • Las rutas de imágenes en CSS se resuelven desde la ubicación de la hoja de estilo.
  • cover llena la caja y puede recortar; contain ajusta toda la imagen y puede dejar espacios.
  • Las imágenes de fondo se repiten salvo que se cambie la repetición.
  • Los degradados son imágenes y la primera imagen de fondo se dibuja encima.
  • La propiedad abreviada de fondo usa una barra entre la posición y el tamaño y restablece las configuraciones omitidas.
  • Coloca las imágenes informativas en el HTML; los fondos sirven como decoración.

6.4 Bordes, esquinas redondeadas, contornos y sombras

Un borde forma parte del modelo de caja. Un contorno o una sombra se dibuja alrededor de la caja sin reservar espacio adicional. Elegir entre ellos cambia tanto el aspecto como el comportamiento de dimensionamiento de un estilo.

Da un estilo al borde
.note {
  border: 1px solid #cccccc;
  border-left: 4px solid crimson;
  padding-left: 12px;
}

La propiedad abreviada establece ancho, estilo y color; estas partes pueden aparecer en cualquier orden. El estilo de borde inicial es none, por lo que establecer solo el ancho y el color no produce un borde visible. Entre los estilos están solid, dashed, dotted, double, groove, ridge, inset y outset, así como none y hidden.

Si se omite el ancho, se usa medium, que suele ser 3px en los navegadores actuales. Si se omite el color, se usa currentColor, que coincide con el texto del elemento. Las propiedades abreviadas para un lado, como border-top, y las propiedades individuales, como border-left-color, permiten añadir una excepción después de un borde general. Por ejemplo, border-top: none elimina solo el borde superior después de una declaración para los cuatro lados.

Con el cálculo content-box, un borde de 2px en cada lado añade 4px al ancho y a la altura. Por eso, aumentar el ancho del borde al pasar el puntero puede desplazar el contenido cercano. Mantén estable el ancho del borde y cambia su color, o usa un contorno como indicación que no ocupa espacio. Con el cálculo border-box, un borde más grueso ocupa más espacio dentro de la caja declarada.

Redondea las esquinas en un orden predecible

border-radius: 8px redondea todas las esquinas incluso cuando el borde es invisible. Con cuatro valores, el orden es superior izquierda, superior derecha, inferior derecha, inferior izquierda. Dos valores se aplican a pares de esquinas opuestas: el primero a superior izquierda e inferior derecha, y el segundo a superior derecha e inferior izquierda.

border-radius: 50% hace circular una caja cuadrada y elíptica una rectangular. Su propio fondo se recorta hasta ese borde redondeado. El radio por sí solo no recorta el contenido hijo que se desborda; esa es una decisión independiente de desbordamiento. El radio no se suma a las dimensiones medidas de la caja.

Añade una línea de foco o profundidad
.link:focus-visible {
  outline: 3px solid navy;
  outline-offset: 2px;
}

Un contorno se dibuja fuera del borde y no ocupa espacio en la disposición. Su separación crea un espacio respecto al borde. Es una indicación útil del foco porque puede aparecer sin mover las cajas vecinas.

box-shadow: 0 2px 6px rgb(0 0 0 / 0.2); proporciona un desplazamiento horizontal de cero, un desplazamiento de 2px hacia abajo, un desenfoque de 6px y un color negro translúcido. Un valor opcional de extensión va después del desenfoque. inset dibuja la sombra por dentro; los valores separados por comas añaden varias sombras. Las sombras siguen las esquinas redondeadas y no añaden espacio al modelo de caja.

Comprueba una tarjeta terminada

Una tarjeta con width: 280px; padding: 16px; border: 1px solid #dddddd; mide 314px de ancho con el cálculo content-box. Suma a 280px dos veces 16px y dos veces 1px. Con el cálculo border-box sigue midiendo 280px y deja 246px para el contenido. Un radio de esquina de 12px y una sombra suave no cambian ninguno de los dos cálculos. Cambian el borde dibujado, no las dimensiones usadas para colocar otras cajas.

Puntos clave

  • Un borde visible necesita un estilo como solid.
  • Los bordes intervienen en el cálculo del tamaño de la caja; los contornos y las sombras no reservan espacio adicional en la disposición.
  • Los radios de las esquinas siguen el sentido de las agujas del reloj desde la esquina superior izquierda; las formas más cortas emparejan esquinas.
  • Un radio del 50 % hace circular un cuadrado y elíptico un rectángulo.
  • Una sombra de caja enumera los desplazamientos horizontal y vertical, después el desenfoque y la extensión opcionales y, por último, el color.

Ejemplos de Hojas de estilo CSS

6 Lecciones Interactivas

1

Haz que una hoja de estilo funcione e inspecciónala

10 pasos
Vincula una página a CSS, sigue una regla sencilla y diagnostica un cambio que no aparece.
  1. 1
    IntroducciónDel HTML con significado a una página con estilos

    Un encabezado y un párrafo ya tienen estilos proporcionados por el navegador. Les darás una fuente y un color elegidos y después seguirás el resultado hasta el CSS.

    La primera tarea es establecer una vinculación fiable entre archivos. Después, una regla debe coincidir con el elemento, contener una declaración válida y prevalecer para la propiedad correspondiente. Trátalas como comprobaciones separadas cuando la página no cambie.

  2. 2
    EjemploVincula un archivo externo

    Supón que index.html está junto a una carpeta llamada css, que contiene styles.css. Añade esto dentro del head del HTML:

    <link rel="stylesheet" href="css/styles.css">
    

    La ruta parte del archivo HTML y entra en la carpeta CSS. Guardar reglas en ese archivo externo permite que otras páginas se vinculen al mismo diseño. Una ruta mal escrita puede dejar el HTML legible mientras ninguno de estos estilos del autor se carga.

  3. 3
    ExplicaciónEscribe e interpreta una regla

    Pon esto en la hoja de estilo vinculada:

    p {
      color: navy;
      font-size: 18px;
    }
    

    p selecciona los párrafos. Las llaves contienen dos declaraciones, cada una de las cuales relaciona una propiedad con un valor. Los puntos y coma separan las declaraciones. Recarga la página: un párrafo que coincida recibe texto azul marino y un tamaño de fuente de 18px, salvo que una declaración de mayor prioridad cambie una de esas propiedades.

  4. 4
    DesafíoCorrige un valor no válido

    Una regla dice p { font-size: 18 px; color: teal; }. Predice el efecto y corrige la declaración del tamaño.

    ---reveal---

    El color verde azulado puede aplicarse, pero la declaración del tamaño no es válida porque el número y la unidad de una longitud deben ir juntos. Cámbiala a font-size: 18px;. El navegador omite la declaración no válida, no todo el bloque, por lo que un color que funciona no demuestra que se haya aceptado el valor del tamaño.

  5. 5
    Idea claveObserva qué elimina una propiedad abreviada

    Estas declaraciones no conservan la foto:

    background-image: url("sky.jpg");
    background: lightblue;
    

    La propiedad abreviada restablece las propiedades de fondo que omite, incluida la imagen. Escribe primero una propiedad abreviada general y después la excepción individual cuando ambas deban conservarse. Esto explica un cambio que parece válido pero desaparece incluso cuando la ruta y el selector son correctos.

  6. 6
    ConexiónConserva los valores predeterminados útiles del navegador

    Los encabezados grandes, los espacios entre párrafos y los marcadores de lista ya están presentes gracias a la hoja de estilo del agente de usuario. Tus reglas modifican ese punto de partida.

    body { margin: 0; } elimina un espacio predeterminado concreto. Restablecer todos los márgenes y rellenos también elimina el espaciado útil de los párrafos y la sangría de las listas. Elige el nivel de encabezado HTML por su significado y después cambia su tamaño de fuente; elegir un nivel de encabezado menor solo por su aspecto cambia la estructura del documento.

  7. 7
    ConsejoInspecciona una propiedad antes de adivinar

    Haz clic derecho en el párrafo y elige Inspeccionar. Busca su regla en Estilos. Una regla ausente indica un posible problema de coincidencia o de carga; una advertencia indica posible CSS no válido; una declaración tachada ha perdido en la cascada.

    El panel de estilos calculados muestra los valores resultantes y el diagrama de caja. Prueba allí un cambio y después guárdalo en tu hoja de estilo. Una edición de inspección por sí sola es temporal y desaparece cuando el navegador recarga los archivos guardados.

  8. 8
    DesafíoExplica un espacio que permanece en una lista

    Una lista de navegación tiene list-style: none, pero sus elementos siguen teniendo sangría. La regla es válida y no está tachada. ¿Qué debes inspeccionar y cambiar?

    ---reveal---

    Inspecciona el relleno de la lista. Eliminar los marcadores no elimina su relleno inicial predeterminado. Restablece ese relleno, normalmente con padding: 0, para eliminar la sangría; después añade el espaciado deseado si el diseño lo necesita. La configuración del marcador y el espaciado de la caja son propiedades distintas.

  9. 9
    DesafíoSigue el cambio que ha fallado

    Una página sigue mostrando el estilo predeterminado de los párrafos. El panel Red informa de una solicitud fallida de styles.css, mientras que el archivo real es css/styles.css. ¿Qué debes corregir primero y cómo debes comprobar el resultado?

    ---reveal---

    Corrige el enlace a la hoja de estilo en el HTML para que apunte a css/styles.css. Recarga, confirma que la solicitud se complete correctamente y después inspecciona el párrafo para encontrar la regla que coincide con él. Aumentar la especificidad del selector no puede ayudar mientras no se cargue la hoja de estilo que lo contiene.

  10. 10
    RepasoUna ruta fiable de depuración

    Comienza con una declaración de tipo de documento HTML válida y una hoja de estilo correctamente vinculada. Una regla necesita después un selector que coincida y valores de propiedad válidos. Las propiedades abreviadas pueden restablecer propiedades individuales anteriores incluso cuando todas las declaraciones son válidas.

    Usa Red para comprobar la carga, Estilos para la coincidencia y la prioridad, y el panel de estilos calculados para las dimensiones finales. Guarda los cambios que funcionen en el archivo CSS para que se conserven al recargar. Los valores predeterminados del navegador siguen formando parte de la explicación siempre que tus reglas no modifiquen una propiedad.

2

Interpreta selectores en el árbol HTML

12 pasos
Selecciona clases reutilizables, estados, partes y relaciones estructurales sin seleccionar elementos adicionales.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDescribe la coincidencia deseada
  2. 2
    EjemploReutiliza una clase en varios elementos
  3. 3
    DesafíoUn espacio cambia el elemento seleccionado
  4. 4
    ConsejoComparte reglas sin exigir anidamiento
  5. 5
    ExplicaciónSelecciona atributos y estados actuales
  6. 6
    EjemploCuenta hermanos, no solo párrafos
  7. 7
    DesafíoSelecciona un marcador sin reemplazar el texto
  8. 8
    ExplicaciónEncuentra hijos directos en una lista anidada
  9. 9
    EjemploSigue las dos relaciones entre hermanos
  10. 10
    DesafíoTen presente el mismo padre
  11. 11
    DesafíoCombina ubicación y estado
  12. 12
    RepasoLee el selector como una prueba de coincidencia
3

Sigue un conflicto desde la prioridad hasta la herencia

13 pasos
Encuentra las declaraciones que prevalecen, calcula la especificidad y distingue los valores locales de los heredados.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónUn elemento puede tener varias declaraciones que prevalecen
  2. 2
    ExplicaciónFiltra antes de comparar
  3. 3
    EjemploResuelve un color en línea
  4. 4
    Idea claveUsa capas antes que selectores más fuertes
  5. 5
    DesafíoNombra la etapa decisiva
  6. 6
    EjemploCuenta las partes del selector por columna
  7. 7
    ExplicaciónInterpreta los selectores funcionales
  8. 8
    DesafíoCompara sin sumar las columnas
  9. 9
    ConexiónDeja que el texto se herede y las cajas permanezcan separadas
  10. 10
    ExplicaciónElige el restablecimiento deseado
  11. 11
    DesafíoDistingue un hijo del selector de su padre
  12. 12
    DesafíoSigue la decisión completa
  13. 13
    RepasoDa a cada decisión su propia función
4

Elige un color y calcula un tamaño relativo

10 pasos
Interpreta los canales de color y la transparencia y después sigue las referencias a la fuente, el contenedor y el área de visualización.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónIdentifica la referencia del valor
  2. 2
    EjemploDescodifica tres canales de color
  3. 3
    Idea claveMantén el texto opaco sobre un fondo translúcido
  4. 4
    DesafíoComprueba el umbral adecuado
  5. 5
    EjemploCalcula el tamaño del texto antes que su espaciado
  6. 6
    ConexiónEvita el crecimiento repetido en texto anidado
  7. 7
    ExplicaciónDa a los porcentajes la referencia correcta
  8. 8
    DesafíoAplica dos referencias distintas
  9. 9
    DesafíoRelaciona el tamaño de fuente con el contraste
  10. 10
    RepasoElige qué debe seguir el valor
5

Mide una tarjeta y explica sus espacios

11 pasos
Calcula ambos modelos de caja y después sigue el comportamiento en línea, el centrado y el colapso de márgenes.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónComienza en el contenido y avanza hacia fuera
  2. 2
    ExplicaciónNombra las cuatro capas
  3. 3
    EjemploCalcula una tarjeta content-box
  4. 4
    EjemploCambia lo que incluye el ancho
  5. 5
    DesafíoCorrige un desbordamiento de ancho completo
  6. 6
    ConexiónHaz que un enlace acepte dimensiones
  7. 7
    EjemploReparte el espacio horizontal restante
  8. 8
    Idea claveCombina márgenes verticales
  9. 9
    DesafíoPredice un espacio con signos distintos
  10. 10
    DesafíoVuelve a calcular la tarjeta centrada
  11. 11
    RepasoMide la capa que causa el problema
6

Crea texto legible y una tarjeta terminada

15 pasos
Establece una fuente fiable, mantén los enlaces utilizables y añade fondos y bordes sin restablecimientos ni cambios de tamaño inesperados.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDa una finalidad a cada elección visual
  2. 2
    ExplicaciónElige una lista de fuentes fiable
  3. 3
    EjemploCarga una variante y mantén visible el texto
  4. 4
    DesafíoDetecta un restablecimiento de la propiedad abreviada de fuente
  5. 5
    EjemploMantén proporcional el interlineado
  6. 6
    ConsejoMantén comprensibles los menús y enlaces
  7. 7
    DesafíoDistingue el bloque de su contenido
  8. 8
    EjemploSigue una ruta de fondo
  9. 9
    EjemploEscala una foto cuadrada en una caja ancha
  10. 10
    Idea claveSuperpone un tinte a una foto
  11. 11
    DesafíoMantén visible la fotografía completa
  12. 12
    ExplicaciónDibuja un borde sin mover sus vecinos
  13. 13
    DesafíoRedondea la caja y conserva la medida
  14. 14
    DesafíoTermina una tarjeta interactiva estable
  15. 15
    RepasoRelaciona la decoración con las reglas subyacentes

Ejercicios de Hojas de estilo CSS

50 Preguntas de Práctica en 5 sets

Set 1: Aplica selectores, espaciado y decoración10 Preguntas de Práctica

Pregunta 1 de 10

El archivo HTML es /site/pages/team.html; la hoja de estilo es /site/css/theme.css. ¿Qué href relativo alcanza la hoja de estilo?
  1. css/theme.css
  2. ../css/theme.css
  3. ../pages/theme.css
  4. ../../css/theme.css
Mostrar respuestaOcultar respuesta
Respuesta: B
El archivo HTML parte de la carpeta pages, por lo que .. sube primero a /site y después css/theme.css entra en la carpeta correcta. Usar solo css/theme.css buscaría una carpeta CSS dentro de pages. El enlace relativo se resuelve desde el archivo HTML, no desde la raíz del sitio de forma predeterminada.

Pregunta 2 de 10

Una section contiene un h3, un p, un aside y después otro p. ¿Qué selecciona h3 ~ p dentro de esa sección?
  1. Solo el párrafo siguiente.
  2. Solo el último párrafo.
  3. El encabezado y ambos párrafos.
  4. Ambos párrafos hermanos.
Mostrar respuestaOcultar respuesta
Respuesta: D
El combinador ~ alcanza los hermanos posteriores que coinciden y comparten el padre del encabezado, aunque haya otro elemento entre ellos. Ambos párrafos cumplen esa condición. Seleccionar solo el párrafo inmediatamente posterior aplicaría la relación más estricta de +, que no describe el selector de esta pregunta.

Pregunta 3 de 10

Un padre coincide con #article { color: olive; } y su párrafo hijo coincide con p { color: purple; }. ¿Qué color usa el párrafo?
  1. Morado por su propia regla.
  2. Oliva por el ID del padre.
  3. Oliva hasta que se añada una clase.
  4. El color predeterminado del navegador.
Mostrar respuestaOcultar respuesta
Respuesta: A
El párrafo tiene un color asignado directamente, por lo que no usa el valor oliva que de otro modo heredaría. La regla de ID selecciona al padre, no al párrafo. Comparar la especificidad del ID del padre con el selector de tipo del hijo trata erróneamente la herencia como un conflicto entre declaraciones sobre el mismo elemento.

Pregunta 4 de 10

Un párrafo tiene style="color: coral;" y coincide con .notice { color: indigo !important; } en el CSS del autor. ¿Qué color se usa?
  1. Coral.
  2. El color del padre.
  3. Índigo.
  4. El predeterminado del navegador.
Mostrar respuestaOcultar respuesta
Respuesta: C
La declaración importante de la hoja de estilo del autor prevalece sobre la declaración normal en línea porque la importancia se compara antes que la ventaja del estilo en línea entre los estilos normales del autor. El coral prevalecería frente a reglas normales de la hoja de estilo del autor. Aquí el atributo en línea no está marcado como importante, por lo que no se aplica ese resultado de las reglas normales.

Pregunta 5 de 10

El tamaño de fuente de un padre es 18px. Su hijo tiene font-size: 1.5em; padding: 0.5em;. ¿Cuánto relleno se establece en cada lado?
  1. 9px.
  2. 27px.
  3. 13,5px.
  4. 36px.
Mostrar respuestaOcultar respuesta
Respuesta: C
Primero, el tamaño de fuente del hijo pasa a 27px porque su 1.5em usa los 18px del padre. Después, el relleno usa el tamaño de fuente del propio hijo, por lo que la mitad de 27px es 13,5px. Un resultado de 9px seguiría usando el tamaño de fuente del padre para el relleno después de que haya cambiado el tamaño del texto del hijo.

Pregunta 6 de 10

Un enlace sigue siendo una caja en línea ordinaria y width: 180px no afecta a su tamaño. ¿Qué valor de display lo mantiene a nivel de línea y permite ese ancho?
  1. inline-block
  2. inline
  3. none
  4. block
Mostrar respuestaOcultar respuesta
Respuesta: A
inline-block mantiene el enlace en la línea y permite establecer explícitamente el ancho y la altura. El comportamiento en línea ordinario ignora esas dimensiones para un enlace de texto. La visualización de bloque también aceptaría un ancho, pero daría al enlace un comportamiento de nivel de bloque en lugar de conservar la posición en línea solicitada.

Pregunta 7 de 10

Una tarjeta border-box tiene width: 260px; padding: 18px; border: 2px solid;. ¿Cuánto mide de ancho su área de contenido?
  1. 260px.
  2. 224px.
  3. 300px.
  4. 220px.
Mostrar respuestaOcultar respuesta
Respuesta: D
El ancho border-box declarado ya incluye el relleno y el borde. Resta 36px de relleno lateral y 4px de borde lateral a 260px para obtener 220px. Un resultado de 224px resta solo el relleno y deja que el borde ocupe un espacio de contenido que en realidad no está disponible.

Pregunta 8 de 10

Una regla usa background-color: linear-gradient(white, navy);. ¿Por qué no se muestra el degradado?
  1. Un degradado necesita border-style.
  2. Un degradado es un valor de imagen.
  3. Un degradado necesita un valor de repetición.
  4. Los colores con nombre son paradas no válidas.
Mostrar respuestaOcultar respuesta
Respuesta: B
CSS crea un degradado como una imagen, por lo que debe ir en background-image o en la propiedad abreviada background. Una propiedad que solo acepta colores no puede admitirlo y la declaración se ignora. Los colores con nombre son paradas válidas de un degradado; cambiar esos nombres a hexadecimal no corregiría la incompatibilidad con la propiedad.

Pregunta 9 de 10

Una caja tiene border-width: 4px; border-color: teal; y ninguna otra declaración de borde. ¿Por qué no se ve ningún borde?
  1. El ancho inicial del borde es cero.
  2. El estilo inicial del borde es none.
  3. El color del borde necesita un valor alfa.
  4. El ancho necesita el cálculo border-box.
Mostrar respuestaOcultar respuesta
Respuesta: B
El ancho y el color del borde no seleccionan un estilo de línea visible; el valor inicial de border-style es none. Establecer border-style: solid proporcionaría la parte que falta. Cambiar el cálculo de la caja afecta a cómo interviene un borde en las dimensiones, pero no convierte un estilo de borde invisible en uno visible.

Pregunta 10 de 10

El CSS normal del autor declara @layer base, widgets;. Base contiene #info { color: teal; }; widgets contiene .card { color: maroon; }. Una regla sin capa p { color: navy; } también coincide con <p id="info" class="card">. ¿Qué color prevalece?
  1. Verde azulado.
  2. Granate.
  3. El color heredado.
  4. Azul marino.
Mostrar respuestaOcultar respuesta
Respuesta: D
Las declaraciones normales del autor sin capa prevalecen sobre las declaraciones normales en capas antes de comparar la especificidad del selector. Por tanto, el párrafo usa azul marino, a pesar del ID de la capa base. El granate prevalecería en la comparación entre las dos capas, pero sigue perdiendo frente a la regla sin capa que coincide.
Set 2: Interpreta reglas y predice resultados sencillos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Una regla contiene color: 18px; padding: 12px;. ¿Qué ocurre con estas declaraciones?
  1. Se ignoran ambas declaraciones.
  2. Se aplica el color; se ignora el relleno.
  3. Se ignora el color; se aplica el relleno.
  4. Se aplican ambas declaraciones.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una página no tiene CSS de autor, pero una lista tiene sangría y sus elementos tienen viñetas. ¿De dónde proceden estos estilos?
  1. De la hoja de estilo del agente de usuario del navegador.
  2. De los márgenes heredados del texto de la lista.
  3. De las declaraciones en línea del archivo HTML.
  4. De la hoja de estilo automática del editor.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un elemento tiene class="panel featured". ¿Qué selector exige ambas palabras de clase en ese mismo elemento?
  1. .panel .featured
  2. .panel, .featured
  3. panel.featured
  4. .panel.featured
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un artículo contiene un h2 y después dos elementos p. ¿Qué selecciona article p:first-child?
  1. Solo el primer párrafo.
  2. Ninguno de los párrafos.
  3. Solo el segundo párrafo.
  4. Ambos párrafos.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Dos reglas normales del autor sin capa son .badge { color: teal; } seguida de .badge { color: maroon; }. ¿Qué color prevalece?
  1. Verde azulado.
  2. Granate.
  3. El color del padre.
  4. El predeterminado del navegador.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

¿Cuál es la especificidad ID-CLASE-TIPO de .panel > a:hover?
  1. 0-1-2
  2. 0-2-2
  3. 1-1-1
  4. 0-2-1
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

¿Qué color hexadecimal de seis dígitos equivale a #4bd?
  1. #44bbdd
  2. #40b0d0
  3. #444bdd
  4. #4b4bdd
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un elemento content-box tiene width: 240px; padding: 12px; border: 3px solid; margin: 8px;. ¿Cuál es el ancho de su caja hasta el borde?
  1. 240px.
  2. 255px.
  3. 270px.
  4. 286px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

¿Qué lista ofrece fuentes con nombre y una alternativa genérica que funciona?
  1. "Noto Sans", Arial, "sans-serif"
  2. "Noto Sans Arial", sans-serif
  3. "Noto Sans", "Arial sans-serif"
  4. "Noto Sans", Arial, sans-serif
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una section tiene font-size: 20px; line-height: 1.4;. Su hijo h2 tiene font-size: 1.5em y ninguna declaración de altura de línea. ¿Cuáles son el tamaño de fuente y la altura de línea del encabezado?
  1. Texto de 30px con líneas de 42px.
  2. Texto de 30px con líneas de 28px.
  3. Texto de 20px con líneas de 28px.
  4. Texto de 30px con líneas de 45px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Sigue los valores en estructuras de páginas reales10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Una declaración funciona después de editarla en las herramientas de desarrollo, pero el cambio desaparece al recargar. ¿Qué debes hacer para conservarlo?
  1. Guardar la declaración que funciona en la hoja de estilo.
  2. Guardar una captura de pantalla del panel Estilos.
  3. Volver a recargar con el mismo elemento seleccionado.
  4. Mover el elemento a otro padre en el HTML.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una regla .alert.urgent no coincide con <p class="alert"><span class="urgent">Update</span></p>. ¿Qué selector selecciona el span urgent solo cuando está dentro de un elemento alert?
  1. .alert.urgent
  2. .alert, .urgent
  3. .alert .urgent
  4. p.alert.urgent
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un enlace tiene href="manual.PDF". ¿Qué selector coincide con una terminación PDF sin distinguir entre mayúsculas y minúsculas?
  1. a[href^=".pdf" i]
  2. a[href=".pdf" i]
  3. a[href~=".pdf" i]
  4. a[href$=".pdf" i]
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un div class="tools" contiene un ul directo con el enlace A dentro de un li, además de una section que contiene otro ul con el enlace B. Ambos enlaces tienen el puntero encima. ¿Con qué coincide .tools > ul a:hover?
  1. Solo con el enlace B.
  2. Solo con el enlace A.
  3. Con los enlaces A y B.
  4. Con ninguno de los enlaces A y B.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Dos declaraciones normales del autor en la misma capa usan #menu a y .menu a.selected. Ambas coinciden con un enlace. ¿Qué selector tiene mayor especificidad?
  1. #menu a
  2. .menu a.selected
  3. Tienen la misma especificidad.
  4. Decide el antecesor más cercano.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

El CSS del autor establece div { display: initial; }. ¿Qué valor de display recibe el div de esa declaración?
  1. block
  2. inline-block
  3. none
  4. inline
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una leyenda usa background-color: rgb(0 0 0 / 0.5); color: white; sobre una foto. Una persona sustituye el fondo con alfa por negro opaco y añade opacity: 0.5 a la leyenda. ¿Qué cambia?
  1. Solo el fondo sigue siendo translúcido.
  2. El texto también se vuelve parcialmente transparente.
  3. El texto también se vuelve negro opaco.
  4. La foto pasa a formar parte de la leyenda.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un bloque contenedor mide 420px de ancho y 300px de alto. ¿A qué valor se resuelve padding-top: 10% en su hijo?
  1. 30px.
  2. 10px.
  3. 42px.
  4. 72px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

En el flujo normal de bloques, dos márgenes verticales contiguos colapsan: el primero es de 26px y el segundo de −9px. ¿Qué espacio resulta?
  1. 26px.
  2. 35px.
  3. 17px.
  4. −9px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una foto cuadrada se usa una sola vez, sin repetición, detrás de una banda de 900px por 300px. ¿Qué ocurre con background-size: contain; background-position: center;?
  1. Una imagen cuadrada de 300px deja espacios de 300px a cada lado.
  2. Una imagen cuadrada de 900px pierde 300px arriba y abajo.
  3. Una imagen de 900px por 300px llena la banda al estirarse.
  4. Una imagen cuadrada de 300px deja los 600px a la derecha.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Resuelve estilos que compiten y cajas cambiantes10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué comentario CSS puede identificar correctamente un grupo de reglas?
  1. // Article styles
  2. <!-- Article styles -->
  3. # Article styles
  4. /* Article styles */
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una regla h2, p..lead, blockquote { color: teal; } no cambia ninguno de estos elementos. ¿Qué explica el resultado?
  1. Una coma exige que todos los selectores coincidan con un elemento.
  2. Un selector no válido invalida la lista de selectores ordinaria.
  3. El selector blockquote cancela el selector de encabezado.
  4. Una lista no puede mezclar selectores de clase y de tipo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una section contiene <h2>News</h2><aside><p>A</p></aside><p>B</p><p>C</p>. ¿Qué texto seleccionan h2 + p y h2 ~ p, respectivamente?
  1. A; B y C.
  2. B; B y C.
  3. Ninguno; B y C.
  4. Ninguno; A, B y C.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

El CSS del autor declara @layer foundations, details;. Foundations contiene .flag { color: teal !important; }; details contiene #notice { color: purple !important; }; una regla sin capa contiene p { color: navy !important; }. Todas coinciden con un párrafo. ¿Qué color prevalece?
  1. Verde azulado.
  2. Morado.
  3. Azul marino.
  4. El color del padre.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un color de texto de tamaño normal sobre blanco tiene un contraste medido de 4,2:1. ¿Cuál es su resultado de contraste según WCAG AA?
  1. Cumple el mínimo para texto normal.
  2. No cumple porque todo texto necesita 7:1.
  3. Cumple solo porque se usa blanco.
  4. No cumple el mínimo para texto normal.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un hijo content-box tiene width: 100%; padding: 0 15px; en un área de contenido de 480px de ancho, sin bordes ni márgenes. ¿Cuánto mide de ancho su caja hasta el borde?
  1. 480px.
  2. 510px.
  3. 495px.
  4. 450px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

La caja hasta el borde de una tarjeta mide 360px de ancho. Su regla es width: 320px; padding: 18px; border: 2px solid; con cálculo content-box. Debe seguir midiendo 360px de ancho después de cambiar a border-box y aumentar el relleno a 24px. ¿Qué ancho declarado y ancho de contenido resultan?
  1. 360px declarados; 308px de contenido.
  2. 320px declarados; 268px de contenido.
  3. 360px declarados; 312px de contenido.
  4. 372px declarados; 320px de contenido.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un elemento recibe primero font-weight: 700; font-style: italic; y después font: 1.25rem/1.4 Arial, sans-serif;. ¿Qué grosor y estilo se aplican después de la propiedad abreviada?
  1. Grosor en negrita y estilo en cursiva.
  2. Grosor normal y estilo en cursiva.
  3. Grosor normal y estilo normal.
  4. Grosor en negrita y estilo normal.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una lista de navegación tiene list-style: none;, pero sus elementos siguen teniendo sangría. ¿Qué regla adicional elimina la sangría predeterminada?
  1. text-indent: 0;
  2. list-style-position: inside;
  3. text-align: start;
  4. padding: 0;
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un enlace de bloque en línea usa el cálculo content-box con un borde de 1px. Al pasar el puntero debe mostrar una indicación más destacada y conservar el ancho de su contenido y todas las dimensiones de la caja. ¿Qué cambio cumple ese requisito?
  1. Aumentar el ancho del borde a 3px.
  2. Añadir un contorno de 3px al pasar el puntero.
  3. Cambiar al dimensionamiento border-box.
  4. Añadir 2px de relleno en cada lado.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Diagnostica y explica combinaciones desconocidas10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

La solicitud de una hoja de estilo se completa correctamente. Su regla aparece para un span inspeccionado y width: 160px es válido y no está tachado, pero el span sigue teniendo solo el ancho de su texto. ¿Qué lo explica?
  1. La solicitud usó la hoja de estilo equivocada.
  2. El span hereda un ancho del padre.
  3. El span es una caja en línea ordinaria.
  4. El margen del span oculta su ancho.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una lista tiene exactamente ocho hijos li y ningún otro elemento hijo. ¿Qué posiciones de hijos coinciden con li:nth-child(3n+2)?
  1. 2, 5 y 8.
  2. 3 y 6.
  3. 1, 4 y 7.
  4. 2, 4, 6 y 8.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Todas las declaraciones son reglas normales del autor sin capa. Un enlace dentro de <section id="main"> coincide con :where(#main) a { color: teal; }, :is(#spare, section) a { color: purple; } y después .chosen:hover { color: navy; }. Tiene la clase chosen y el puntero está sobre él. ¿Qué color prevalece?
  1. Verde azulado.
  2. Azul marino.
  3. El color heredado.
  4. Morado.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un contenedor tiene color: maroon; background-color: beige;. Su hijo tiene color: unset; background-color: unset; y ningún otro estilo pertinente. ¿Cuáles son los valores propios de color y fondo del hijo?
  1. Texto granate y fondo beige.
  2. Texto granate y fondo transparente.
  3. Color de texto inicial y fondo transparente.
  4. Color de texto inicial y fondo beige.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

La fuente raíz es de 20px y un contenedor mide 700px de ancho. Su hijo border-box tiene width: calc(100% - 4rem); padding: 1em; border: 2px solid; font-size: 1.5rem;. ¿Cuál es el ancho del contenido del hijo?
  1. 620px.
  2. 556px.
  3. 576px.
  4. 616px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un bloque de 500px de ancho no tiene relleno ni borde. Su hijo tampoco tiene relleno ni borde y es un bloque ordinario con width: 320px; margin: 0 auto; text-align: center;. ¿Qué márgenes horizontales y alineación de texto resultan?
  1. 180px a cada lado; texto centrado.
  2. 90px a cada lado; texto alineado al inicio.
  3. Márgenes laterales de cero; texto centrado.
  4. 90px a cada lado; texto centrado.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una fuente web se declara con @font-face { font-family: "Lumen Sans"; src: url("fonts/lumen-regular.woff2") format("woff2"); }. ¿Qué nombre debe usar una lista de fuentes para solicitar esta variante?
  1. "Lumen Sans"
  2. "lumen-regular"
  3. "lumen-regular.woff2"
  4. "fonts/lumen-regular.woff2"
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Unas reglas de enlace con igual especificidad establecen primero a:hover { color: teal; } y después a:visited { color: purple; }. Un enlace visitado tiene el puntero encima. ¿Qué cambio hace que su color sea verde azulado al pasar el puntero y conserve el morado de visitado cuando no tiene el puntero encima?
  1. Colocar la regla de visitado después de la regla de hover.
  2. Establecer el morado en el padre del enlace.
  3. Colocar la regla de hover después de la regla de visitado.
  4. Sustituir :hover por :active en la primera regla.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una página en /site/index.html vincula /site/css/main.css. Ese CSS usa background-image: url("images/banner.jpg");, pero la imagen está en /site/images/banner.jpg. Una regla posterior también establece background: navy;. ¿Qué corrección mantiene el azul marino detrás de la imagen?
  1. Cambiar solo la URL a ../images/banner.jpg y mantener el orden actual.
  2. Cambiar solo la propiedad abreviada a background-color: navy y mantener la URL actual.
  3. Escribir background: navy; antes de background-image: url("images/banner.jpg");.
  4. Escribir background: navy; antes de background-image: url("../images/banner.jpg");.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una caja rectangular mide 160px por 80px y tiene border-radius: 50%. ¿Qué forma redondeada adquiere su fondo?
  1. Un círculo.
  2. Una elipse.
  3. Un cuadrado redondeado.
  4. Una cápsula con bordes laterales rectos.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

84 Términos Clave, cada uno con su definición

Á

Área de contenido
El área de contenido es la parte interior de la caja de un elemento que contiene su texto, imagen o contenido hijo, dentro del relleno y el borde.
Un ancho content-box de 300px deja los 300px para el contenido antes de añadir el relleno a las dimensiones exteriores.

A

Alineación del texto
La alineación del texto posiciona el contenido en línea de un bloque dentro del espacio de su línea, con opciones como start, end, center y justify.
Centrar el texto dentro de un párrafo de ancho completo no estrecha la caja del párrafo ni mueve sus bordes.
Altura de línea
La altura de línea establece la altura usada para una línea de texto; un valor sin unidad actúa como multiplicador del tamaño de fuente del propio elemento.
Con texto de 20px, una altura de línea sin unidad de 1,5 da líneas de 30px y puede escalar de forma adecuada para hijos más grandes.

B

Borde
Un borde es el límite con estilo que rodea el área de relleno de una caja, con un ancho, un estilo y un color que intervienen en el cálculo del tamaño de la caja.
Dos bordes laterales de 2px añaden 4px al ancho content-box de una tarjeta, incluso cuando también se dibuja una sombra suave alrededor de esa tarjeta.

C

Caja de bloque
Una caja de bloque normalmente comienza en una línea nueva, acepta dimensiones y ocupa el ancho disponible de su contenedor cuando su ancho es auto.
Un párrafo puede usar un ancho máximo y márgenes laterales automáticos mientras mantiene el texto alineado a la izquierda en su interior.
Caja de bloque en línea
Una caja de bloque en línea se integra en una línea de texto mientras acepta dimensiones explícitas y reserva espacio vertical para el espaciado de la caja.
Un enlace de navegación puede ganar espacio de activación con relleno sin obligar a que cada enlace ocupe una línea distinta.
Caja en línea
Una caja en línea ordinaria fluye dentro de una línea de texto y toma su ancho de su contenido, ignorando el ancho y la altura explícitos.
Un span no pasa a medir 200px de ancho solo porque una regla le asigne width: 200px mientras siga siendo en línea.
Cálculo del tamaño de la caja
El cálculo del tamaño de la caja determina si un ancho o una altura declarados miden solo el área de contenido o incluyen también el relleno y el borde.
Cambiar a border-box una tarjeta con relleno y ancho completo puede hacer que su ancho exterior vuelva a caber en su contenedor.
Canal alfa
El alfa es el componente de opacidad de un valor de color, que va de totalmente transparente en cero a totalmente opaco en uno o 100 %.
Un fondo con alfa a la mitad puede dejar ver una foto detrás mientras el texto del elemento permanece totalmente opaco.
Capa de cascada
Una capa de cascada es un grupo de reglas con nombre y una prioridad explícita respecto a otras capas, que se compara antes que la especificidad del selector.
Una clase normal de una capa de componentes puede prevalecer sobre una regla basada en ID de una capa base cuando la capa de componentes aparece después.
Capa de fondo
Una capa de fondo es una imagen de una lista de fondos separados por comas; la primera imagen de la lista se dibuja encima de las posteriores.
Un color debajo de todas las capas de imágenes puede seguir siendo visible a través de las partes transparentes y los espacios sin cubrir.
Cascada
La cascada es el proceso ordenado que elige una declaración que prevalece para cada propiedad de cada elemento cuando las reglas CSS compiten.
Un párrafo puede tomar su color de una regla de clase y su tamaño de fuente de una regla independiente con selector de tipo.
Colapso de márgenes
El colapso de márgenes combina ciertos márgenes verticales contiguos de bloques en un único margen, usando el valor positivo mayor y el negativo más bajo.
Los márgenes positivos adyacentes de 18px y 30px que colapsan crean un espacio de 30px, mientras que los márgenes horizontales permanecen separados.
Color actual
La palabra clave currentColor representa el color de texto del propio elemento cuando otra propiedad que acepta color necesita un valor coincidente.
Un borde que usa currentColor cambia con el color del texto cuando una regla hover actualiza solo color.
Color hexadecimal
Un color hexadecimal expresa los valores de los canales rojo, verde y azul en base 16, con un par adicional opcional para la transparencia del color.
Al expandir #3ac se obtiene #33aacc porque cada dígito se convierte en un par repetido para su propio canal.
Color HSL
Un color HSL describe el tono como un ángulo junto con la saturación y la luminosidad porcentuales, y ofrece otra notación para un color.
Mantener fijo el tono mientras se aumenta la luminosidad puede convertir un azul oscuro en una versión pálida de ese azul.
Color RGB
Un color RGB especifica las cantidades de luz roja, verde y azul, habitualmente como números de canal de 0 a 255 en rgb().
El valor rgb(30 144 255) da las mismas cantidades de canal que el valor hexadecimal de seis dígitos #1e90ff.
Combinador de hermano adyacente
El combinador de hermano adyacente, +, selecciona un elemento que coincide inmediatamente después de otro cuando ambos comparten el mismo padre.
El selector h2 + p alcanza un párrafo inicial, pero deja de coincidir cuando aparece un aside entre ambos.
Combinador de hermanos posteriores
El combinador de hermanos posteriores, ~, selecciona los hermanos posteriores de un elemento que coinciden y permite que haya otros hermanos entre ellos.
El selector h2 ~ p puede alcanzar dos párrafos separados por un aside cuando todos comparten el padre del encabezado.
Contenido generado
El contenido generado es texto o una caja decorativa creada por pseudoelementos CSS en lugar de escribirse como un nodo de contenido HTML.
Un asterisco añadido con ::after necesita un valor de content; las instrucciones esenciales permanecen en el HTML.
Contorno
Un contorno es una línea dibujada fuera del borde de una caja sin reservar espacio adicional en la disposición, que suele usarse para indicar el foco del teclado.
Un enlace puede recibir un contorno de foco de 3px sin apartar el texto cercano, como sí haría un borde content-box más grande.
CSS
CSS es un lenguaje que describe la presentación de los elementos HTML, incluidos sus colores, fuentes, espaciado, bordes y fondos.
Una página puede conservar la misma estructura de encabezados mientras otra hoja de estilo cambia sus colores y tipografía.

D

Declaración
Una declaración es una propiedad CSS y un valor unidos por dos puntos, que asignan una parte del aspecto de un elemento dentro de una regla.
En color: navy;, la declaración establece el color del texto y el punto y coma la separa de la siguiente configuración.
Declaración importante
Una declaración importante es una declaración CSS marcada con !important, lo que le da prioridad sobre las declaraciones normales del mismo origen.
Un color importante del autor puede prevalecer sobre un color normal en línea incluso cuando el selector de la hoja de estilo es solo p.
Decoración del texto
La decoración del texto dibuja líneas, como un subrayado o un tachado, en el texto, con ajustes opcionales de estilo, color y grosor.
Un enlace puede conservar un subrayado como indicación reconocible mientras una regla hover aumenta solo el grosor de la línea.
Degradado
Un degradado es una imagen generada por el navegador con colores que cambian a lo largo de una línea o hacia fuera desde un centro, y se usa como valor de imagen.
Un degradado translúcido situado antes de una foto puede oscurecerla sin aplicar opacidad al texto superpuesto.
Desbordamiento
El desbordamiento es el contenido que se extiende más allá de las dimensiones permitidas de una caja y se controla con valores como visible, hidden, scroll y auto.
Un bloque de código con overflow: auto puede desplazar su línea larga sin ensanchar toda la página.
Descendiente
Un descendiente es un elemento anidado en cualquier lugar dentro de otro elemento, ya sea directamente o mediante uno o más elementos intermedios.
El selector nav a alcanza un enlace de navegación incluso cuando hay una lista y un elemento de lista entre él y nav.

E

Especificidad
La especificidad es el peso ID-CLASE-TIPO de un selector, usado para comparar declaraciones que compiten después de que empaten sus prioridades anteriores en la cascada.
Un selector de ID puede prevalecer sobre muchas clases en el mismo grupo de prioridad porque la columna ID se compara primero.
Estado de foco visible
El estado de foco visible coincide con un elemento que tiene el foco cuando el navegador determina que el lector necesita un indicador de foco visible.
Una persona que usa el teclado puede ver un contorno en el enlace seleccionado por a:focus-visible antes de activarlo.
Estado del enlace
Un estado del enlace es una condición de coincidencia, como no visitado, visitado, con foco, con el puntero encima o activo, que puede seleccionar un enlace para aplicarle estilos.
Un enlace visitado también puede tener el puntero encima, por lo que el orden de las reglas de color de igual especificidad afecta a su aspecto.

F

Familia de fuentes genérica
Una familia de fuentes genérica nombra una categoría amplia de fuentes que el navegador usa como alternativa, como serif, sans-serif, monospace o system-ui.
Poner sans-serif entre comillas lo convierte en un nombre de fuente literal y elimina su función como alternativa genérica de la lista.
Fuente variable
Una fuente variable almacena un intervalo de variaciones de fuente, como grosores, en un solo recurso en lugar de necesitar un archivo estático por variante.
Un archivo de fuente variable puede proporcionar varios grosores solicitados cuando su intervalo declarado los incluye.
Fuente web
Una fuente web es un recurso de fuente que se descarga para usarlo en una página y permite que un diseño ofrezca una variante que no está instalada en el dispositivo del lector.
Una página puede mostrar primero una fuente alternativa y después su fuente web elegida cuando termina de cargarse el archivo WOFF2.
Función calc()
La función calc() combina valores CSS compatibles en una expresión y permite que una longitud mezcle cantidades relativas y absolutas.
El valor calc(100% - 40px) resta una cantidad fija de un ancho relativo al contenedor, con espacios alrededor del signo menos.

H

Herencia
La herencia es el proceso por el que un elemento recibe el valor de su padre para una propiedad heredada cuando ningún valor local lo reemplaza.
La familia de fuentes de un body puede llegar a los párrafos ordinarios sin otra declaración de fuente en cada párrafo.
Hermano
Un hermano es un elemento que comparte el mismo padre con otro elemento; los combinadores de hermanos usan su orden en el árbol HTML.
Un párrafo dentro de un aside no es hermano de un encabezado fuera del aside, aunque parezcan adyacentes.
Hijo
Un hijo es un elemento anidado directamente dentro de un elemento padre, sin ningún otro elemento entre ambos en el árbol HTML.
El selector .menu > li excluye los elementos cuyo padre es una lista anidada independiente dentro del menú.
Hoja de estilo
Una hoja de estilo es una colección de reglas CSS que un navegador aplica a un documento, almacenada a menudo en un archivo independiente compartido por varias páginas.
Un enlace HTML a css/styles.css permite que una página cargue sus estilos desde el archivo de la carpeta vecina.
Hoja de estilo del agente de usuario
Una hoja de estilo del agente de usuario es el conjunto de reglas CSS integrado en el navegador que da a los elementos HTML su aspecto predeterminado.
Los encabezados grandes y las listas con sangría aparecen en una página HTML sin estilos antes de que un autor añada una hoja de estilo.

I

Imagen de fondo
Una imagen de fondo es una imagen decorativa dibujada detrás del contenido de una caja y encima de su color de fondo, cuyo tamaño y repetición se pueden controlar.
Una foto CSS puede no cargarse mientras la caja conserva su color alternativo y el texto permanece en el documento.

L

Lista de fuentes alternativas
Una lista de fuentes alternativas es una lista ordenada de familias de fuentes que permite al navegador recurrir a otra familia cuando una preferida no está disponible.
Una lista que termina en sans-serif sin comillas sigue proporcionando una fuente adecuada en un dispositivo que no tiene las fuentes con nombre.
Lista de selectores
Una lista de selectores es un grupo de selectores separados por comas que comparten un bloque de declaraciones mientras coinciden con elementos de forma independiente.
La regla para h1, h2, h3 puede dar una familia de fuentes a los tres niveles de encabezado sin exigir anidamiento.

M

Marcador de lista
Un marcador de lista es la viñeta, el número u otro indicador asociado a un elemento de lista, al que se aplican estilos mediante propiedades de lista o ::marker.
Cambiar un marcador por un cuadrado no elimina la sangría predeterminada independiente del contenedor de la lista.
Margen
Un margen es el espacio transparente fuera del borde de una caja que sirve para separarla de las cajas vecinas y queda excluido del ancho declarado.
Un fondo no puede colorear el espacio creado por un margen, así que el espaciado interior de color necesita relleno.
Margen automático
Un margen horizontal automático absorbe el espacio restante junto a un bloque y permite que dos márgenes laterales auto iguales centren una caja más estrecha.
Un bloque que ya ocupa todo su contenedor no puede desplazarse visiblemente cuando ambos márgenes laterales se establecen en auto.
Modo de estándares
El modo de estándares es el modo de renderizado de documentos del navegador que sigue los estándares web modernos y se selecciona mediante una declaración de tipo de documento HTML válida.
Colocar <!DOCTYPE html> al principio evita el comportamiento antiguo que puede afectar a una página en modo de compatibilidad.

O

Orden en el código fuente
El orden en el código fuente es la secuencia de las declaraciones según se encuentra el CSS y resuelve un conflicto solo después de que empaten las comparaciones anteriores de la cascada.
Dos selectores de clase idénticos que establecen el color en una capa dejan que prevalezca la declaración posterior.
Origen del estilo
El origen del estilo indica si el CSS procede del autor, del lector o del navegador y constituye una etapa de la prioridad de la cascada.
Una regla normal del autor puede reemplazar el tamaño de encabezado predeterminado del navegador sin igualar el peso de su selector.

P

Palabra clave inherit
La palabra clave inherit da explícitamente a una propiedad el valor calculado de su padre, incluso cuando esa propiedad normalmente no se hereda.
Establecer font: inherit en los controles puede reemplazar la fuente asignada por el navegador por la fuente del texto circundante.
Palabra clave initial
La palabra clave initial selecciona el valor inicial de una propiedad según la especificación de CSS, independientemente de la regla predeterminada del elemento HTML.
Aplicar display: initial a un div da una visualización en línea aunque el navegador normalmente lo convierte en bloque.
Palabra clave revert
La palabra clave revert revierte una propiedad más allá del origen de estilo actual y deja disponible un valor aplicable de un origen inferior.
Una regla del autor con display: revert puede restaurar la visualización de bloque normal asignada por el navegador a un div.
Palabra clave revert-layer
La palabra clave revert-layer revierte el valor de una propiedad más allá de la capa de cascada actual para que pueda proporcionarlo una fuente de menor prioridad.
Una capa de componentes puede dejar de aplicar su configuración de color y permitir que vuelva a aparecer el color coincidente de una capa base anterior.
Palabra clave unset
La palabra clave unset sigue la herencia normal para una propiedad heredada y usa el valor inicial para una propiedad no heredada.
Usar unset en color puede conservar el color de texto de un padre, mientras que usarlo en margin elimina un margen local.
Panel Estilos
El panel Estilos es una vista de las herramientas de desarrollo que muestra las reglas que coinciden con un elemento seleccionado, incluidas las declaraciones que pierden en la cascada.
Un color tachado en el panel Estilos ayuda a explicar por qué un párrafo muestra el valor de otra regla.
Píxel CSS
Un píxel CSS es una longitud de referencia absoluta usada en los estilos de página, que puede corresponder a varios píxeles físicos en una pantalla de alta densidad.
Una fuente de 16px puede mantener un tamaño previsto similar aunque dos pantallas tengan distintas densidades de píxeles del dispositivo.
Porcentaje
Un porcentaje CSS expresa una proporción de una referencia determinada por la propiedad, como el ancho del contenedor o el tamaño de fuente del padre.
Un relleno superior del 10 % en un contenedor de 500px de ancho usa ese ancho y se resuelve en 50px, independientemente de la altura.
Posición de la imagen de fondo
La posición de la imagen de fondo coloca una imagen dentro de su área de fondo mediante palabras clave, longitudes o porcentajes, con la posición horizontal primero.
Una imagen centrada con cover distribuye el recorte necesario alrededor de su centro en lugar de conservar solo la esquina superior izquierda.
Propiedad abreviada
Una propiedad abreviada establece varias propiedades CSS relacionadas a la vez y restablece las propiedades individuales incluidas que su valor no especifica.
Escribir background: white; puede eliminar una foto asignada previamente mediante background-image.
Pseudoclase
Una pseudoclase es una condición de selector que coincide con el estado o la posición estructural de un elemento y se escribe con dos puntos.
La pseudoclase :checked puede seleccionar una casilla de verificación cuyo estado marcado actual no está representado por una clase.
Pseudoclase estructural
Una pseudoclase estructural selecciona elementos según su posición entre hermanos, como el primer hijo o uno de cada dos hijos.
Un párrafo que sigue a un encabezado es el primer párrafo, pero no coincide con p:first-child.
Pseudoelemento
Un pseudoelemento selecciona una parte de un elemento o crea una parte generada para aplicarle estilos y, por convención, se escribe con dos pares de dos puntos.
Una regla para li::marker puede colorear las viñetas de la lista y dejar el texto del elemento con su color actual.

R

Radio de las esquinas
El radio de las esquinas redondea las esquinas de una caja sin aumentar sus dimensiones, con valores que pueden variar entre las cuatro esquinas.
Un radio del 50 % hace circular una caja cuadrada, mientras que el mismo valor en un rectángulo produce una elipse.
Regla @font-face
Una regla @font-face asigna un nombre de familia CSS y características de variante a un recurso de fuente que se puede usar en una lista de fuentes alternativas.
La declaración de familia debe coincidir con el nombre elegido en la regla, no con el nombre de archivo que aparece en su URL de origen.
Relación de contraste
Una relación de contraste compara la luminancia relativa de los colores de primer plano y de fondo para medir su diferencia visible entre claro y oscuro.
Un texto con contraste de 2,85:1 no cumple los umbrales mínimos de WCAG AA para texto normal ni para texto grande.
Relleno
El relleno es el espacio entre el contenido de una caja y su borde, que muestra el fondo de la caja y contribuye a sus dimensiones.
Aumentar el relleno de una tarjeta crea espacio de color alrededor de su texto en lugar de un espacio exterior transparente.
Restablecimiento de estilos
Un restablecimiento de estilos es un conjunto de reglas CSS que elimina determinados valores predeterminados del navegador para que un diseño establezca sus propios estilos iniciales uniformes.
Una regla que elimina todo el relleno también elimina la sangría de las listas, que el diseño puede necesitar restaurar.

S

Selector compuesto
Un selector compuesto combina condiciones de coincidencia sin un combinador y exige que un elemento cumpla todas esas condiciones.
El selector p.note alcanza un párrafo con la clase note, mientras que p .note busca un descendiente.
Selector de atributo
Un selector de atributo coincide con un elemento por la presencia de un atributo o por una condición sobre su valor, mediante una sintaxis entre corchetes.
El selector a[href$=".pdf" i] puede aplicar estilos a enlaces de documentos incluso cuando la terminación del archivo está en mayúsculas.
Selector de clase
Un selector de clase coincide con los elementos cuyo atributo class, separado por espacios, contiene la palabra indicada, lo que hace reutilizable el estilo.
El selector .notice coincide tanto con una nota sencilla como con un elemento que tiene class="card notice".
Selector de especificidad cero
Un selector de especificidad cero no aporta peso a una comparación de selectores; :where() también elimina el peso de sus argumentos.
El selector :where(#main) p sigue siendo fácil de reemplazar porque solo el párrafo aporta un punto de tipo.
Selector de ID
Un selector de ID coincide con el ID único de un elemento y aporta más especificidad que los selectores de clase en una regla que compite.
Un selector que usa #site-header puede ser más difícil de reemplazar después que uno que usa una clase reutilizable de encabezado.
Selector de tipo
Un selector de tipo coincide con elementos por su nombre HTML y permite que una regla CSS se aplique a todos los elementos de un tipo seleccionado.
El selector p puede establecer el espaciado de los párrafos en toda la página sin asignar una clase a cada uno.
Selector universal
El selector universal, *, coincide con todos los elementos pero aporta especificidad cero, lo que lo hace útil en valores predeterminados generales y restablecimientos.
Una regla para * puede restablecer los márgenes, mientras que un selector de clase puede proporcionar después espaciado con mayor especificidad.
Separación del contorno
La separación del contorno establece el espacio entre el contorno de un elemento y su borde, y cambia la indicación dibujada sin cambiar las dimensiones de la caja.
Una separación de 2px distancia un contorno de foco del borde de un enlace para que las dos líneas sigan distinguiéndose visualmente.
Sombra de caja
Una sombra de caja dibuja una sombra exterior o interior mediante desplazamientos, desenfoque y extensión opcionales, y color, sin añadir espacio al modelo de caja.
Una tarjeta puede recibir una sombra suave y conservar el mismo ancho calculado hasta el borde y la misma posición entre sus vecinas.

T

Tamaño de la imagen de fondo
El tamaño de la imagen de fondo controla las dimensiones con que se renderiza una imagen de fondo; cover y contain conservan sus proporciones.
Cover puede recortar las partes superior e inferior de una foto cuadrada en una caja ancha; contain puede dejar espacios a su lado.
Terna ID-CLASE-TIPO
Una terna ID-CLASE-TIPO registra los recuentos de ID, selectores de tipo clase y selectores de tipo elemento en tres columnas que se comparan por separado.
El selector a[href]:hover tiene la terna 0-2-1, con el atributo y hover contados en CLASE.
Transformación de mayúsculas y minúsculas
La transformación de mayúsculas y minúsculas cambia mediante CSS cómo se muestran las mayúsculas y minúsculas del texto sin reescribir las palabras guardadas en el HTML.
Una etiqueta en mayúsculas puede proceder de HTML escrito con mayúsculas y minúsculas normales, lo que conserva las palabras originales en el documento.

U

Unidad ch
Un ch es una longitud relativa a la fuente basada en el ancho de avance del carácter cero, que suele usarse para limitar el ancho de las columnas de texto.
Un párrafo con max-width: 65ch sigue el tamaño de la fuente sin garantizar exactamente 65 letras por línea.
Unidad em
Un em es una longitud relativa a la fuente que usa el tamaño de fuente del padre para font-size y el del propio elemento en otras propiedades.
Después de que el tamaño calculado del texto de un hijo sea 20px, su relleno de 2em pasa a 40px en lugar de volver a seguir al padre.
Unidad relativa al área de visualización
Una unidad relativa al área de visualización mide una proporción del área de visualización del navegador: vw usa el ancho y vh la altura como referencia.
Un valor de 10vh equivale a 80px cuando la altura del área de visualización es de 800 píxeles CSS, incluso dentro de un contenedor más bajo.
Unidad rem
Un rem es una longitud relativa al tamaño de fuente del elemento raíz que proporciona una referencia compartida entre los elementos anidados de la página.
Varios elementos anidados con 1.25rem mantienen el mismo tamaño de texto cuando comparten un tamaño raíz sin cambios.

V

Valor calculado
Un valor calculado es el valor de una propiedad después de que el navegador resuelva las reglas de cascada y cálculo, antes de algunas resoluciones que dependen de la disposición.
Las herramientas de desarrollo pueden mostrar que un tamaño de fuente en em se convierte en píxeles, mientras que un porcentaje de ancho depende de la disposición.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar