HTML Academy · Lezione

Collegare sezioni e identificatori fragment

Passare alle sezioni della pagina usando gli attributi id e i link con hash

Lezione 4 di 413 passaggi

Collegare sezioni e identificatori fragment è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Che cos'è un identificatore di frammento?

Un identificatore di frammento è la parte di un URL che segue il simbolo #:

https://example.com/page#section-3
                          │
                          └─ Fragment: "section-3"

<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->

Creare destinazioni di ancoraggio con id

Per creare un link a una sezione, le assegni 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>

Creare link da un'altra pagina

È possibile creare un link a una sezione di un'altra pagina:

<!-- 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>

Regole per i nomi degli id

Regole per valori id validi:

  • Devono essere univoci nella pagina: due elementi non possono condividere lo stesso id
  • Non possono iniziare con un numero in CSS, anche se sono validi in HTML
  • Non possono contenere spazi: utilizzi i trattini, ad esempio my-section
  • Distinguono tra maiuscole e minuscole: #FAQ e #faq sono diversi

Schema dell'indice dei contenuti

I link ai frammenti permettono di creare indici dei contenuti all'interno della pagina:

<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>

Scorrimento fluido con CSS

Aggiunga un comportamento di scorrimento fluido alla navigazione tra frammenti:

/* Apply to the entire page */
html {
  scroll-behavior: smooth;
}

/* Or for specific containers */
.scrollable {
  scroll-behavior: smooth;
}

Spaziatura per le intestazioni fisse

Le barre di navigazione fisse coprono le sezioni verso cui si è effettuato lo scorrimento. Risolva il problema 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 pseudo-classe CSS :target

Applichi uno stile alla sezione attualmente destinata utilizzando :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 -->

Link per tornare in cima

Un modello comune: un link per tornare in cima utilizzando un frammento:

<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;
}
-->

Frammenti e cronologia del browser

La navigazione tra frammenti aggiunge voci alla cronologia del browser:

  • Facendo clic su un link a un frammento si aggiunge una voce alla cronologia
  • Il pulsante Indietro del browser riporta alla posizione di scorrimento precedente
  • È un comportamento normale: le SPA possono utilizzare pushState per modificarlo

Ancore denominate (legacy)

Prima degli attributi id, per le ancore si utilizzava <a name>; ora è 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 -->

Verifica rapida

Quale proprietà CSS impedisce a una barra di navigazione fissa di coprire una sezione verso cui si è effettuato lo scorrimento?

Riepilogo: identificatori di frammento

Elementi essenziali dei link ai frammenti:

  • #id in href fa scorrere la pagina fino all'elemento con quell'id
  • Ogni elemento destinazione deve avere un attributo id univoco
  • Funzionano sia nella stessa pagina sia da altre pagine
  • scroll-behavior: smooth per uno scorrimento animato
  • scroll-margin-top per evitare la sovrapposizione di un'intestazione fissa
  • La pseudo-classe :target per evidenziare la sezione corrente
Gratis per iniziare

Impara HTML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
40
Lezioni
159

Domande Frequenti

La lezione «Collegare sezioni e identificatori fragment» è gratuita?

Sì — il testo completo di «Collegare sezioni e identificatori fragment» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «Collegare sezioni e identificatori fragment»?

Passare alle sezioni della pagina usando gli attributi id e i link con hash Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Collegare sezioni e identificatori fragment»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. L’elemento anchor e l’attributo href
  2. URL assoluti e relativi
  3. Aprire i link in nuove schede e attributo download
  4. Collegare sezioni e identificatori fragment
← Torna a HTML Academy