CSS :last-of-type Pseudoclase
La pseudoclase CSS :last-of-type selecciona el último elemento de su tipo entre los hermanos. Lee sobre ella y prueba ejemplos.
La pseudoclase CSS :last-of-type selecciona un elemento que es el último elemento de su tipo entre los hijos de su padre. "Tipo" aquí hace referencia al nombre de etiqueta del elemento — por lo que p:last-of-type coincide con el último <p> dentro de su padre, independientemente de cuántos otros elementos (divs, encabezados, spans) aparezcan después de él.
Esta página explica qué coincide con :last-of-type, su sintaxis, cómo se comporta en diferentes tipos de elementos y — de manera importante — en qué se diferencia de la pseudoclase de aspecto similar :last-child.
La pseudoclase :last-of-type es equivalente a :nth-last-of-type(1) y selecciona exactamente el mismo elemento.
Cuándo usarla
Recurre a :last-of-type cuando quieras aplicar estilos al último elemento de una etiqueta determinada sin depender de su posición exacta. Usos comunes:
- Eliminar el margen inferior o el borde del último párrafo en una tarjeta.
- Dar estilo al último elemento de lista, imagen o sección en un contenedor que mezcla tipos de elementos.
- Apuntar al "último de su tipo" cuando no puedes estar seguro de que también sea el último hijo del padre.
Si en cambio necesitas el elemento que literalmente es el último hijo del padre — sin importar su tipo — usa :last-child. Consulta la comparación más abajo.
Versión
Sintaxis
Sintaxis CSS de :last-of-type
:last-of-type {
css declarations;
}Ejemplo del selector :last-of-type:
Ejemplo de código de :last-of-type
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:last-of-type {
background: #8ebf42;
font-style: italic;
color: #eeeeee;
}
</style>
</head>
<body>
<h2>:last-of-type selector example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</body>
</html>Apuntar a elementos padre
El selector también se puede aplicar a elementos padre.
The * selector is implied when no type selector is specified (e.g., *:last-of-type is equivalent to :last-of-type).
En el ejemplo siguiente, article:last-of-type aplica estilos al último <article> entre sus hermanos. Observa cómo la pseudoclase se evalúa por tipo dentro de cada padre: los elementos <em> se agrupan por separado de los elementos <div> y <b>, por lo que cada etiqueta tiene su propio "último de su tipo".
Ejemplo de apuntar a un elemento padre:
Pseudoclase CSS :last-of-type
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
article:last-of-type {
background-color: #8ebf42;
}
</style>
</head>
<body>
<article>
<div>This "div" is first.</div>
<div>This <span>nested "span" is last</span>!</div>
<div>This <em>nested "em" is first</em>, but this <em>nested "em" is last</em>!</div>
<b>This "b" qualifies!</b>
<div>This is the final "div"!</div>
</article>
</body>
</html>:last-of-type vs :last-child
Los selectores :last-child y :last-of-type son similares pero responden preguntas diferentes:
:last-childcoincide con un elemento solo si es el último hijo de su padre — la posición importa, el tipo no.:last-of-typecoincide con el último elemento de un tipo dado, incluso si otros elementos aparecen después de él.
Por tanto, p:last-of-type coincide con el último <p> incluso cuando le sigue un <span>, mientras que p:last-child no coincidiría con ese <p> en absoluto (porque el <span> es el último hijo real). En el ejemplo siguiente, la regla se aplica al último párrafo independientemente de los spans, mientras que span:last-child apunta solo al span final — que resulta ser el último hijo del body.
Ejemplo de los selectores CSS :last-of-type y :last-child:
Selectores :last-of-type y :last-child
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:last-of-type {
background: #8ebf42;
font-style: italic;
color: #eee;
}
span {
display: block;
}
span:last-child {
background: #8ebf42;
font-style: italic;
font-weight: bold;
color: #eee;
padding: 10px;
}
</style>
</head>
<body>
<h2>:last-of-type and :last-child selectors example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<span>Some text</span>
<span>Some text</span>
<span>Some text</span>
</body>
</html>Consideraciones importantes
:last-of-typetiene alcance por padre: cada elemento padre tiene su propio "último párrafo", "último div", etc.- Solo funciona con tipos de elementos. No existe un equivalente basado en clases —
.box:last-of-typesignifica "el último elemento cuyo tipo coincide con el elemento que también tiene la clasebox", no "el último elemento con la clasebox". Usa:last-childcombinado con una clase, o:nth-last-of-type(), para un control más preciso. - Si un padre tiene solo un elemento de un tipo dado, ese único elemento es su propio
:last-of-type(y:first-of-type).
Selectores relacionados
:first-of-type— el primer elemento de su tipo.:nth-of-type()y:nth-last-of-type()— coincidencia de tipos basada en posición.:only-of-type— un elemento que es el único de su tipo.:last-child— el último hijo independientemente del tipo.