Enlaces a secciones e identificadores de fragmento
Vaya directamente a secciones de la página mediante atributos id y enlaces hash.
Enlaces a secciones e identificadores de fragmento es una lección gratuita de HTML Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de HTML Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de HTML Academy incluye 4 lecciones en total.
¿Qué es un identificador de fragmento?
Un identificador de fragmento es la parte de una URL que aparece después del símbolo #:
https://example.com/page#section-3
│
└─ Fragment: "section-3"
<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->Crear destinos de anclaje con id
Para enlazar con una sección, asígnele un id:
<!-- The target: give any element an id -->
<h2 id="installation">Installation</h2>
<h2 id="configuration">Configuration</h2>
<h2 id="faq">Frequently Asked Questions</h2>
<!-- The link: use # + id value -->
<a href="#installation">Jump to Installation</a>
<a href="#faq">Go to FAQ</a>Enlazar desde otra página
Puede enlazar con una sección de otra página:
<!-- From a different page -->
<a href="/docs/guide#installation">Installation Guide</a>
<!-- Loads /docs/guide and scrolls to #installation -->
<!-- Absolute URL to a section -->
<a href="https://example.com/docs#api">API Documentation</a>Reglas para nombrar id
Reglas para valores válidos de id:
- Debe ser único en la página; no puede haber dos elementos con el mismo id
- No puede comenzar con un número en CSS, aunque sí es válido en HTML
- No debe contener espacios; utilice guiones:
my-section - Distingue mayúsculas de minúsculas:
#FAQy#faqson diferentes
Patrón de tabla de contenidos
Los enlaces a fragmentos permiten crear tablas de contenidos en la propia página:
<nav aria-label="Table of Contents">
<ol>
<li><a href="#intro">Introduction</a></li>
<li><a href="#setup">Setup</a></li>
<li><a href="#usage">Usage</a></li>
<li><a href="#api">API Reference</a></li>
</ol>
</nav>
<h2 id="intro">Introduction</h2>
<h2 id="setup">Setup</h2>Desplazamiento suave con CSS
Añada un comportamiento de desplazamiento suave a la navegación mediante fragmentos:
/* Apply to the entire page */
html {
scroll-behavior: smooth;
}
/* Or for specific containers */
.scrollable {
scroll-behavior: smooth;
}Relleno de desplazamiento para encabezados fijos
Las barras de navegación fijas se superponen a las secciones a las que se desplaza. Soluciónelo con scroll-margin-top:
/* If you have a 60px fixed header */
:target {
scroll-margin-top: 70px;
}
/* Or set globally for all headings */
h2, h3, h4 {
scroll-margin-top: 70px;
}
/* scroll-margin-top offsets where the browser scrolls to */La pseudoclase CSS :target
Aplique estilos a la sección seleccionada actualmente con :target:
/* Highlight the targeted section */
:target {
background-color: #fff3cd;
outline: 2px solid #ffc107;
padding: 1rem;
}
<!-- Result: when user clicks #installation, -->
<!-- the installation section gets highlighted -->Enlace para volver arriba
Un patrón habitual: un enlace para volver arriba mediante un fragmento:
<a href="#top" id="back-to-top">↑ Back to top</a>
<!-- Link to page top: either id="top" on body or use empty href # -->
<!-- Always give it meaningful text for accessibility -->
<!-- Position it fixed with CSS: -->
<!--
#back-to-top {
position: fixed;
bottom: 1rem;
right: 1rem;
}
-->Los fragmentos y el historial del navegador
La navegación mediante fragmentos añade entradas al historial del navegador:
- Al hacer clic en un enlace a un fragmento, se añade una entrada al historial
- El botón Atrás del navegador vuelve a la posición de desplazamiento anterior
- Este comportamiento es normal; las SPA pueden utilizar pushState para manipularlo
Anclajes con nombre (heredados)
Antes de los atributos id, se utilizaba <a name> para los anclajes; ahora está obsoleto:
<!-- Old way (do not use): -->
<a name="section-1"></a>
<h2>Section 1</h2>
<!-- Modern way: -->
<h2 id="section-1">Section 1</h2>
<!-- Use id on the target element, not a separate anchor tag -->Comprobación rápida
¿Qué propiedad CSS evita que una barra de navegación fija cubra la sección a la que se ha desplazado?
Resumen: identificadores de fragmento
Aspectos esenciales de los enlaces a fragmentos:
#iden href desplaza la página hasta el elemento que tiene eseid- Cada elemento de destino necesita un atributo
idúnico - Funciona tanto en la misma página como desde otras páginas
scroll-behavior: smoothpermite un desplazamiento animadoscroll-margin-topevita la superposición de un encabezado fijo- La pseudoclase
:targetpermite resaltar la sección actual
Preguntas frecuentes
¿La lección «Enlaces a secciones e identificadores de fragmento» es gratis?
Sí — el texto completo de «Enlaces a secciones e identificadores de fragmento» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de HTML Academy, actualiza a CoddyKit PRO. El curso de HTML Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Enlaces a secciones e identificadores de fragmento»?
Vaya directamente a secciones de la página mediante atributos id y enlaces hash. Practicas HTML Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar HTML Academy?
No se requiere experiencia previa. HTML Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Enlaces a secciones e identificadores de fragmento»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de HTML Academy?
Sí. Cada lección de HTML Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El elemento anchor y el atributo href
- URL absolutas frente a relativas
- Abrir enlaces en pestañas nuevas y el atributo download
- Enlaces a secciones e identificadores de fragmento