W3docs

Tag HTML <s>

Il tag HTML <s> segna testo non più accurato o rilevante (es. un vecchio prezzo). Differenze con <del> e <strike>, con esempi.

Il tag HTML <s> segna testo che non è più accurato o rilevante — ma non è stato letteralmente eliminato dal documento. È un elemento inline e i browser ne renderizzano il contenuto con uno strikethrough (una riga orizzontale attraverso il testo) per impostazione predefinita.

Un uso classico è mostrare un prezzo scontato: il vecchio prezzo rimane visibile ma barrato, accanto al prezzo di vendita attuale. Questo comunica al lettore "questo era vero in precedenza; ecco cosa è vero adesso."

Nota

<s> è un elemento HTML5 validonon è deprecato. Il tag deprecato è <strike>, che non dovresti mai usare nelle nuove pagine. Usa <s> (semantica) o CSS text-decoration: line-through (solo stile visivo) al suo posto.

Sintassi

Il tag <s> viene usato in coppia. Il contenuto va tra il tag di apertura (<s>) e quello di chiusura (</s>).

Esempio — il caso d'uso del prezzo barrato

Questo è l'uso più comune e idiomatico di <s>: il prezzo originale non è più rilevante, quindi viene barrato, mentre il prezzo scontato viene mostrato come quello attuale.

Tag HTML <s>

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <p>
      Hurry, sale ends soon!
      <s>Was $50.00</s>
      <strong>Now $29.99</strong>
    </p>
  </body>
</html>

Risultato

s tag example

<s> vs <del> vs <strike>

Questi tre tag producono tutti una riga attraverso il testo, ma hanno significati molto diversi. Scegliere quello giusto è ciò che rende il tuo HTML semantico anziché solo decorato visivamente.

TagSignificatoUsalo quando…Stato
<s>Il contenuto non è più accurato o rilevanteUn vecchio prezzo, un dettaglio obsoleto, una raccomandazione che è cambiata — il testo originale non è mai stato "rimosso", è semplicemente superato.HTML5 valido
<del>Il contenuto è stato eliminato / rimosso come modifica editorialeTenere traccia delle modifiche a un documento. Si abbina naturalmente a <ins> per il testo inserito. Supporta cite e datetime per registrare perché e quando.HTML5 valido
<strike>Strikethrough (solo presentazione)Mai — usa <s> o <del> al suo posto.Deprecato

In breve: usa <s> quando il significato è "questo non è più il caso," e usa <del> quando il significato è "questo è stato modificato e rimosso." Se hai bisogno solo della riga visiva senza un significato speciale, usa CSS text-decoration: line-through su un elemento generico.

Accessibilità

Per impostazione predefinita, gli screen reader non annunciano lo strikethrough — la tecnologia assistiva legge il contenuto di <s> come qualsiasi altro testo. Quindi un utente vedente vede "Was $50.00" barrato, ma un utente con screen reader potrebbe sentire semplicemente "Was $50.00" senza alcun indizio che sia obsoleto.

Per i casi in cui lo stato barrato porta un significato importante, aggiungi testo nascosto visivamente che lo espliciti:

<p>
  <s><span class="visually-hidden">Old price: </span>Was $50.00</s>
  <strong>Now $29.99</strong>
</p>
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}

Attributi

Il tag <s> supporta gli attributi globali e gli attributi evento. Non ha attributi propri.

Stile

I browser applicano già text-decoration: line-through a <s>, quindi non è necessario CSS solo per ottenere la riga. Lo stile è una sovrascrittura opzionale — ad esempio, per colorare il testo barrato senza ridichiarare la riga:

s {
  color: gray;
}

Esercizio

Pratica
Cosa rappresenta il tag <s> in HTML?
Cosa rappresenta il tag <s> in HTML?
Was this page helpful?