HTML è l’acronimo di HyperText Markup Language, cioè linguaggio a marcatori per ipertesti, la cui sintassi (originariamente sviluppata da sir Tim Berners-Lee su derivazione dell’SGML ed attualmente alla versione n. 5.1) è stabilita dal World Wide Web Consortium (W3C). In particolare, i predetti marcatori consistono in tag, ovverosia etichette in parentesi angolari (
<nometag>
), che hanno la funzione di stabilire la struttura dei documenti ipertestuali o ipermediali (pagine web, e-mail), nonché il significato del loro contenuto cioè la loro semantica (che può essere forte, ad es., “questa è un’immagine” o “questa è una lista ordinata”, oppure debole ad es. “questa è una sezione sulla pagina” o “questa è una parte del testo”) e -in misura sempre minore- la loro formattazione (che è delegata al CSS).
Dal punto di vista lessicale, l’HTML:
– è case insensitive, quindi è indifferente scrivere <div>
, <Div>
o <DIV>
(tanto che un tag di apertura scritto in maiuscolo, può essere anche chiuso in minuscolo o viceversa). Per una più ordinata e quindi migliore leggibilità del codice, comunque, si preferisce usare sempre il minuscolo. Si segnala, inoltre, che i valori degli attributi class
e id
sono invece case sensitive;
– non prevede indentazione del codice, la quale ha solo una funzione estetica che migliora la leggibilità dello stesso (e non pure di sintassi, come ad esempio per Phyton);
– per i commenti, prevede i simboli <!--
per l’apertura e -->
per la chiusura.
Elementi, tag e attributi
Ogni pagina web, scritta con questo linguaggio informatico, è strutturata attraverso dei particolari componenti costruttivi di base, detti Elementi HTML, ciascuno dei quali consiste in due tag omonimi, uno di apertura e l’altro di chiusura, all’interno dei quali è posto un oggetto o contenuto (testo, immagine, link, ecc.).
<[nometag]>Oggetto</[nometag]>
Ogni Elemento HTML può avere degli attributi, che ne configurano o modificano in vari modi il comportamento. Detti attributi sono indicati nel tag iniziale dell’Elemento stesso attraverso il formato [nomeattributo]="[valoreattributo]"
, quindi come coppie chiave-valore separate dal carattere “=” (qualora il valore dell’attributo sia true
, on
o il nome dell’attributo stesso, è ammessa la sola indicazione del [nomeattributo]
senza bisogno di assegnargli espressamente detto valore, come ad esempio nel caso di required
, controls
, ecc.). Alcuni attributi accettano qualsiasi valore di ogni tipo (ad es., qualsiasi carattere alfanumerico, l’attributo class
, l’attributo title
, ecc.); altri attributi accettano qualsiasi valore ma solo di un certo tipo (ad es., qualsiasi URL, come l’attributo src
, o qualsiasi numero intero, come l’attributo cols
, ecc.); infine altri attributi accettano esclusivamente valori enumerati ossia predefiniti in una lista (ad es., POST|GET
, come l’attributo method
, o auto|ltr|rtl
, come l’attributo dir
, ecc.).
Il valore dell’attributo è (preferibilmente) indicabile tra virgolette (siano esse apici o doppi apici), oppure senza di queste se non contiene spazi, né i seguenti caratteri: " ' ` = < >
.
<[nometag] [nomeattributo]="[valoreattributo]"> Oggetto </[nometag]>
Elementi pieni o vuoti
Alcuni Elementi html sono necessariamente vuoti sempre, non essendo mai previsto né ammesso un oggetto o contenuto e, per questo, privi del tag di chiusura, come ad esempio, il tag <br>
, che indica una interruzione di linea.
Prima riga.<br>Seconda riga.
Seconda riga.
Altri Elementi html, invece, sono necessariamente vuoti a volte, cioè soltanto a determinate condizioni, come ad esempio il tag <script>
con l’attributo src
: per questi elementi, il tag di chiusura è richiesto.
<script src="https://goo.gl/jrcXHC"></script> <button onclick="attiva_script_esterno()">clicca</button>
Elementi annidati
Salvo eccezioni, gli Elementi html possono essere nidificati (o annidati tra loro), cioè un Elemento può contenerne un altro.
<p>Paragrafo con <i>questo</i> testo in corsivo</p>
Paragrafo con questo testo in corsivo
In altri casi, l’annidamento non è una facoltà ma un vero e proprio obbligo (logico, prima ancora che sintattico), come ad esempio nel caso dei form, delle tabelle, ecc.: il tag <td>
(che riguarda le singole celle di una tabella) è annidato, cioè figlio del tag <tr>
(che riguarda le singole righe della tabella stessa), che a sua volta è annidato, cioè figlio del tag <table>
(che riguarda la tabella nel suo insieme).
<table> <tr> <td>cella 1</td> <td>cella 2</td> <td>cella 3</td> </tr> </table>
Tra le eccezioni alla regola generale della libera nidificazione degli elementi, si ricorda che il tag form
non può contenere ulteriori tag form
ivi annidati. A tale limite si ovvia chiudendo immediatamente il tag form
, i cui figli (esterni) sono collegati allo stesso stabilendo una relazione di identità nominale tra l’attributo id
del tag form
e l’attributo form
dei tag figli del predetto tag form
stesso. Per approfondimenti, clicca qui.
<form id="nome_form1"></form> <form id="nome_form2"></form> <input form="nome_form1"> <input form="nome_form2"> <input form="nome_form1"> <input form="nome_form2">
Elementi block ed elementi inline
Salvo diversa configurazione specifica tramite la proprietà css display
, di default gli elementi html sono di tipo block o di tipo inline, a seconda che vadano “a capo” rispetto agli elementi adiacenti (immediatamente precedente e successivo).
Ad esempio, sono di tipo block gli elementi <blockquote>
, <div>
, <form>
, <h1>-<h6>
, <ol>
, <p>
, <section>
, <ult>
, mentre sono di tipo inline gli elementi <a>
, <img>
, <span>
.
Visualizzazione del codice sorgente
Con qualsiasi browser di un qualsivoglia sistema operativo desktop o mobile, di ogni pagina web è possibile visualizzare, oltre al risultato grafico del codice sorgente html (c.d. rendering), anche il codice stesso: su google chrome, ad esempio, con il tasto F12 oppure con la combinazione dei tasti ctrl+u (alt+cmd+u su mac), mentre con ctrl+shift+i (alt+cmd+i su mac) si avvia la Console di sviluppo.
Bibliografia
-
On line
-
Su carta
-
Video tutorial