W3docs

Tag HTML <marquee>

Il tag HTML marquee, ormai obsoleto, scorreva testo o immagini. Scopri perché è stato rimosso e come usare le animazioni CSS.

L'elemento <marquee> è un tag HTML obsoleto e non standard che veniva utilizzato per creare testo o immagini scorrevoli. Faceva scorrere i contenuti orizzontalmente oppure verticalmente sulla pagina web. Come l'elemento <blink> di Netscape, era ampiamente criticato per i suoi problemi di usabilità.

Pericolo

Non usare <marquee> nel nuovo codice. È stato rimosso dall'HTML Living Standard ed è ufficialmente obsoleto. Gli esempi in questa pagina esistono solo per aiutarti a riconoscere e sostituire il codice legacy — non costituiscono una raccomandazione. Per gli effetti di scorrimento oggi, usa la sostituzione moderna con CSS qui sotto. Consulta anche l'elenco dei tag HTML deprecati.

Esempio del tag HTML marquee

Questa pagina illustra cosa faceva <marquee>, perché è stato eliminato, come riprodurre il suo effetto con animazioni CSS conformi agli standard e le regole di accessibilità da rispettare quando i contenuti si muovono sullo schermo.

Perché <marquee> è stato rimosso

Sebbene la maggior parte dei browser renda ancora <marquee> per compatibilità con le versioni precedenti, dovresti trattarlo come obsoleto:

  • Non è presente in alcuna specifica corrente. I produttori di browser possono rimuoverne il supporto in qualsiasi momento, e strumenti, linter e validatori lo segnalano come errore.
  • È presentazione nel markup. Le animazioni appartengono al CSS, non agli elementi HTML.
  • Danneggia l'accessibilità. I contenuti in continuo movimento possono violare le WCAG (vedi Accessibilità sotto).

Sostituzione moderna con CSS

L'effetto marquee è semplicemente un elemento traslato attraverso il suo contenitore in un ciclo. Puoi riprodurlo con @keyframes CSS e la proprietà transform — senza JavaScript e senza tag obsoleti.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .marquee {
        overflow: hidden;       /* hide the text outside the box */
        white-space: nowrap;    /* keep the text on one line */
        box-sizing: border-box;
      }
      .marquee span {
        display: inline-block;
        padding-left: 100%;     /* start fully off-screen on the right */
        animation: scroll-left 12s linear infinite;
      }
      @keyframes scroll-left {
        from { transform: translateX(0); }
        to   { transform: translateX(-100%); }
      }
      /* Pause the animation when the user hovers, giving them control. */
      .marquee:hover span {
        animation-play-state: paused;
      }
    </style>
  </head>
  <body>
    <div class="marquee">
      <span>A scrolling text created with CSS animation instead of marquee.</span>
    </div>
  </body>
</html>

Poiché il movimento risiede ora nel CSS, puoi controllarne la velocità con animation-duration, la direzione scambiando i valori di translateX, e la fluidità con le proprietà transition e animation — tutte standard e pienamente supportate.

Avvertenza sull'accessibilità

I contenuti in movimento rappresentano un problema reale di accessibilità, non una preferenza stilistica.

  • Il criterio di successo WCAG 2.2.2 (Pausa, Stop, Nascondi) richiede che qualsiasi contenuto che si muove, lampeggia o scorre automaticamente per più di cinque secondi possa essere messo in pausa, fermato o nascosto dall'utente. Un <marquee> semplice non offre tale controllo, quindi non soddisfa questo criterio.
  • Rispetta prefers-reduced-motion. Alcuni utenti hanno esplicitamente chiesto al proprio sistema di ridurre al minimo le animazioni (possono causare nausea o vertigini). Disabilita lo scorrimento per loro:
@media (prefers-reduced-motion: reduce) {
  .marquee span {
    animation: none;
  }
}
  • Fornisci un controllo di pausa. L'esempio CSS precedente mette in pausa al passaggio del mouse tramite animation-play-state, ma il mouse non è disponibile per gli utenti da tastiera o touch. Per i contenuti importanti, aggiungi un pulsante Pausa/Play visibile che attiva e disattiva animation-play-state in modo che tutti possano fermare il movimento.

Alternative al tag HTML <marquee>

Oltre all'approccio puramente CSS descritto sopra, puoi creare effetti di scorrimento più ricchi combinando CSS e JavaScript. Leggi il nostro snippet per saperne di più su questo metodo.

Sintassi legacy (solo per riferimento)

Attenzione

Gli esempi in questa sezione sono codice legacy conservati qui solo per aiutarti a riconoscerlo e migrarlo. Non aggiungere <marquee> alle nuove pagine — usa la sostituzione moderna con CSS invece.

Il tag <marquee> va a coppie. Il contenuto è scritto tra i tag di apertura (<marquee>) e chiusura (</marquee>).

Esempio di utilizzo del tag HTML <marquee>:

Esempio del tag HTML <marquee>

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      marquee{
      font-size: 30px;
      font-weight: 800;
      color: #8ebf42;
      font-family: sans-serif;
      }
    </style>
  </head>
  <body>
    <marquee>A scrolling text created with HTML Marquee element.</marquee>
  </body>
</html>

Usa l'attributo direction dell'elemento <marquee> per cambiare la direzione del testo o dell'immagine. Guarda un altro esempio in cui il testo scorre dall'alto verso il basso.

Esempio di testo scorrevole:

Esempio del tag <marquee> con l'attributo direction

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <marquee direction="down">A scrolling text created with HTML Marquee element.</marquee>
  </body>
</html>

Vediamo ora un esempio di utilizzo dell'elemento <marquee> per visualizzare un'immagine scorrevole:

Esempio di immagine scorrevole:

Esempio del tag <marquee> con gli attributi behavior e direction

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
     <marquee behavior="scroll" direction="up">
      <img src="https://api.w3docs.com/uploads/media/default/0001/01/0710cad7a1017902166203def268a0df2a5fd545.png" width="190" height="45" alt="W3docs" />
    </marquee>
  </body>
</html>
Suggerimento

Usa le proprietà CSS width e background-color per stilizzare l'elemento <marquee>.

Esempio di creazione di testo scorrevole con il tag HTML <marquee>:

Esempio di come stilizzare il tag HTML <marquee> con le proprietà width e background-color

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <style> 
      marquee {
        width: 100%;
        padding: 10px 0;
        background-color: lightblue;
      }
    </style>
    <marquee direction="scroll">This scrolling text is created with HTML Marquee element and styled with CSS properties.</marquee>
  </body>
</html>

Attributi

I seguenti attributi venivano utilizzati per regolare l'aspetto dell'elemento <marquee>. Tutti sono non standard. Non sono definiti in alcuna specifica corrente e gli strumenti conformi alle specifiche li segnalano; anche dove i browser li supportano ancora oggi, tale comportamento non è garantito.

AttributoValoreDescrizione
behaviorscroll, slide, alternateDefinisce il tipo di scorrimento.
bgcolorrgb(x,x,x), #xxxxxx, colornameImposta il colore di sfondo.
directionup, down, left, rightImposta la direzione del contenuto scorrevole.
heightpixels, %Definisce l'altezza del marquee.
hspacepixelsDefinisce lo spazio orizzontale attorno al marquee.
loopnumberDefinisce quante volte il contenuto scorre. Se omesso, il contenuto scorre indefinitamente.
scrollamountnumberDefinisce la quantità di scorrimento a ogni intervallo in pixel. Il valore predefinito è 6.
scrolldelaymillisecondsDefinisce il ritardo tra uno scorrimento e l'altro. Il valore predefinito è 85.
truespeedbooleanAbilita una velocità di scorrimento uniforme tra diversi browser.
vspacepixelsDefinisce lo spazio verticale attorno al marquee.
widthpixels, %Definisce la larghezza del marquee.

Il tag <marquee> supporta anche gli attributi globali e gli attributi evento.

Esercitazione

Pratica
Quali funzionalità CSS dovresti usare per riprodurre il vecchio effetto di scorrimento del marquee nel codice moderno?
Quali funzionalità CSS dovresti usare per riprodurre il vecchio effetto di scorrimento del marquee nel codice moderno?
Was this page helpful?