I tag HTML possono essere corredati di uno o più attributi, che servono per meglio specificare la funzione o la tipologia dell'elemento, per memorizzare dati o per arricchire di significato il contenuto.
Un tag con attributi si scrive in questo modo:
<tag attributo1="valore1" attributo2="valore2">
Ecco un esempio pratico:
<input type="email" name="email" placeholder="Scrivi il tuo indirizzo email...">
Il tag input
indica genericamente un elemento che consente agli utenti di inserire delle informazioni. Grazie agli attributi però, possiamo specificare che vogliamo un indirizzo email (attributo type
) e possiamo comunicarlo all'utente con un messaggio (attributo placeholder
).
In sostanza gli attributi:
- sono coppie chiave-valore separate dal carattere
=
(uguale); - i valori sono tipicamente racchiusi tra virgolette
""
, ma è possibile anche utilizzare gli apici''
; - si scrivono lasciando almeno uno spazio dopo il nome dell'elemento nel tag di apertura (o nell'unico tag nel caso di elementi non contenitori).
Nota: in alcune rare situazioni, come quando il valore dell'attributo contiene in sè le virgolette, è necessario usare gli apici (es. data-nome = 'Luca "la roccia" Rossi'
).
Gli attributi comuni, global attributes
Lo standard HTML prevede un insieme di attributi che possono essere applicati a tutti i tag. Possiamo suddividere questi attributi in due principali sottogruppi:
- attributi di base (core);
- attributi per la gestione eventi.
Attributi Core
Sono attributi che la rappresentazione grafica degli elementi ed alcuni aspetti dell'interfaccia utente. Eccone alcuni di quelli più legati al testo:
Attributo | Descrizione |
---|---|
title | Informazione che aiuta a descrivere il contenuto dell'elemento. Il testo viene spesso rappresentato in un tooltip che viene mostrato al passaggio del mouse. |
lang | Indica la lingua del contenuto. Es. <p lang="it">ciao</p> |
Eccone altri che consentono la selezione e l'applicazione di regole di stile per la rappresentazione grafica:
Attributo | Descrizione |
---|---|
id | Serve ad associare un identificatore univoco ad un elemento. Una volta assengato un identificatore, non si dovrà assegnarlo a nessun altro elemento della pagina. |
class | Serve a stabilire che l'elemento appartiene ad una serie di "classi". torneremo sull'argomento, per ora ci basti sapere che possiamo applicare a tutti gli elementi di una classe proprietà simili. Possiamo inserire quante classi vogliamo, tutte separate da uno spazio. Es. <p class="saluto testo-chiaro">ciao</p> , ha due classi: "saluto" e "testo-chiaro". |
style | Serve ad assegnare delle proprietà grafiche (Stili CSS) all'elemento, questo tipo di assegnamento degli stili viene detto stilizzazione "inline". Anche di questo parleremo in seguito |
draggable | Può assumere i valori true o false e serve a stabilire se un elemento sia trascinabile per una operazione di drag-n-drop. |
Attributi come id
, class
e style
sono tra i più utilizzati
Attributi per la gestione degli eventi
Sono attributi che servono per associare determinati comportamenti dell'interfaccia utente in seguito allo scatenarsi di eventi. I comportamenti sono rappresentati da funzioni JavaScript, come in questo esempio:
<a href="#" onclick="alert('ciao');">clicca qui</a>
Nella pratica spesso si preferisce evitare di associare un comportamento direttamente all'interno di un tag, ma non è escluso si possano utilizzare.
Attributo | Descrizione |
---|---|
onclick | Rileva il click (o il tap) effettuato sull'elemento |
onload | Associa un comportamento alla conclusione del caricamento dell'elemento |
onscroll | Attiva un comportamento correlato allo scrolling della pagina |
ondrag | Si attiva quando iniziamo a trascinare un elemento che abbiamo indicato come draggable="true" |
Possiamo trovare un elenco completo dei global attributes sul sito del W3C.
Gli attributi data- (data-attributes)
Lo standard HTML5 ha introdotto i cosiddetti "data-attributes", ovvero degli attributi inseriti nei tag allo scopo di ritenere alcune informazioni utili alla gestione del layout o a supporto dell'interfaccia utente.
In pratica possiamo definire un attributo con il prefisso data-
, seguito dal nome (es. data-cognome
) e assegnare ad esso un valore proprio come facciamo con gli altri attributi.
Mettiamo ad esempio di avere un'agenda e di voler mostrare l'indirizzo e il numero di telefono quando passiamo vicino ai nomi in un elenco. Possiamo associare tutte le informazioni che ci servono ad ogni elemento lista (<li>
) grazie agli attributi "data-" e raggiungerli poi facilmente via JavaScript.
<ul id="elenco">
<li data-indirizzo="Piazza la lenza" data-telefono="3863535555">Luca</li>
<li data-indirizzo="Via le mani dal naso" data-telefono="3164192342">Paolo</li>
<li data-indirizzo="Largo la loggia" data-telefono="3213344314">Umberto</li>
</ul>
L'inserimento di questi attributi personalizzati non avrà alcun effetto sulla resa della pagina. Il browser si limiterà ad ignorarli.