Nella seconda e terza lezione abbiamo studiato i vari tag html ed abbiamo provato ad inserire in una pagina HTML i più importanti.
Sintesi delle lezioni
HTML 5
STRUTTURA DELLA PAGINA WEB
<!-- Prologo -->
<!DOCTYPE html>
<!-- fine prologo -->
<!-- HTML (Documento web) -->
<html lang="it">
<!-- Head: impostazioni della pagina -->
<head>
<script src="mioscripr.js"></script>
<link rel="stylesheet" href="styles.css">
<meta charset="utf-8">
<meta name="google" value="notranslate">
</head>
<!-- fine head -->
<!-- body: contenuto visibile della pagina -->
<body>
<h1>Benvenuto!</h1>
<p>Questo è il mondo di HMTL!</p>
</body>
<!-- fine body -->
</html>
<!-- fine HTML -->
PROLOGO
In HTML 5 il prologo è la semplice dichiarazione del tipo di documento come HTML <!DOCTYPE html>
ELEMENTO RADICE (ROOT)
L'elemento <html>
è obbligatorio e può assumere questi attributi:
dir
Determina la direzione del testo
lang
Specifica il linguaggio di base dell'elemento quando è interpretato come HTML
<html lang="it">
....
</html>
HE AD
La sezione <head>
contiene informazioni che non vengono direttamente visualizzate nella pagina:
<link>
Contiene informazioni su documenti esterni collegati: fogli di stile, favicon, ecc.
<meta>
Specifica informazioni di vario tipo sul documento.
<object>
Racchiude un oggetto.
<script>
Contiene script di programmazione o carica uno script di programmazione esterno .
<style>
Definisce le regole di formattazione per il documento corrente
<title>
Specifica il titolo del documento che compare nella barra del titolo del browser
<head>
<script src="mioscripr.js"></script>
<link rel="stylesheet" href="styles.css">
<meta charset="utf-8">
<meta name="google" value="notranslate">
</head>
BODY
Il corpo del documento è la sezione in cui si sviluppa il contenuto. È racchiusa, come in HTML, tra i tag <body>...</body>
.
Gli elementi che possono comparire all'interno del corpo sono in genere suddivisi in due categorie:
- elementi blocco ed gli elementi blocco sono quelli che definiscono la struttura del documento. Possono contenere altri elementi blocco, elementi inline o testo. Quando sono inseriti danno origine ad una nuova riga nel flusso del documento.
- elementi inline: quando sono inseriti non danno origine a una nuova riga e possono contenere solo dati (essenzialmente testo) o altri elementi inline.
<body>
<h1>Benvenuto!</h1>
<p>Questo è il mondo di HMTL!</p>
</body>
ELEMENTI DI BASE
TITOLI (HEADINGS)
- Gli heading (titoli) sono elementi blocco contrassegna dai tag da
<h1>
a <h6>
e possono essere utilizzati per strutturare gerarchicamente un documento.
- Per default i browser rendono i titoli in grassetto con corpi crescenti da
<h6>
(più piccolo del testo normale) a <h1>
.
<h1>Questo è un titolo di primo livello</h1>
<h2>Questo è un titolo di secondo livello</h2>
DIV
- L’elemento
<div>
è un generico elemento blocco che racchiude una porzione di documento
- Non è prevista alcuna formattazione di default
<div>
Testo o qualsiasi altro elemento
</div>
P
- L’elemento
<p>
è un elemento blocco che racchiude una paragrafo
- Normalmente i browser rendono l'elemento
<p>
assegnandogli un margine inferiore e la dimensione di carattere di default.
- La specifica prevede che l'elemento
<p>
non contenga elementi blocco
<p> Testo e elementi inline o inline-block </p>
UL
L’elemento <ul>
rappresenta una lista non ordinata.
- Gli elementi della lista sono rappresentati da elementi
<li>
- Per default una lista
<ul>
viene resa come lista puntata
- All'interno di un elemento <li> può essere inserito un elemento
<ul>
o <ol>
per creare liste annidate a più livelli
<ul>
<li>Elemento lista</li>
<li>Elemento Lista
<ul>
<li>Elemeto Lista di secondo livello</li>
</ul>
</li>
<li>Elemento lista</li>
<li>Elemento lista</li>
</ul>
OL
L’elemento <ol>
rappresenta una lista ordinata.
- Gli elementi della lista sono rappresentati da elementi
<li>
- Per default una lista
<ol>
viene resa come lista numerata
- All'interno di un elemento <li> può essere inserito un elemento
<ul>
o <ol>
per creare liste annidate a più livelli
<ol>
<li>Elemento lista</li>
<li>Elemento Lista
<ul>
<li>Elemeto Lista di secondo livello</li>
</ul>
</li>
<li>Elemento lista</li>
<li>Elemento lista</li>
</ol>
ELEMENTI SEMANTICI
Gli elementi semantici sono quelli che ci aiutano a dare una struttura logica ad un documento
- Normalmente sono elementi di tipo blocco
- Nella maggior parte dei casi i browser non prevendono alcuna formattazione di default e vengono resi sullo schermo come testo normale
HEADER
La specifica impone che questo elemento debba delimitare l’intestazione di una sezione del documento.
- Le intestazioni possono essere molteplici all’interno di un documento. Si pensi ad esempio blog: nell’home page ci sarà un’intestazione contenente il nome del blog, un menù di navigazione e qualche altra informazione. Sotto l’intestazione potrebbe esserci una sezione contenente gli articoli recenti, ognuna di queste dovrà avere anch’essa un’intestazione che potrebbe l’autore e la data di pubblicazione.
- Non è prevista lacuna formattazione di default
<header class="main-header">
<div class="logo">Logo</div>
<nav>
<!-- Menu del sito -->
</nav>
</header>
NAV
L’elemento <nav> specifica una porzione di documento destinato alla navigazione per esempio la lista di un menu.
<nav>
<ul class="navbar">
<li><a href="#titoli">Titoli</a> </li>
<li><a href="#paragrafo">Paragrafo</a> </li>
<li><a href="#liste">Liste</a> </li>
</ul>
</nav>
SECTION
L'elemento <section> rappresenta una sezione generica di un documento o applicazione.
- Individua un raggruppamento tematico di contenuti, ed in genere contiene un titolo introduttivo ad esempio le sezioni di una homepage o i capitoli di un libro.
- Se la sezione racchiusa è una notizia l’elemento più appropriato per tale impiego è il tag <article>.
<section>
Testo o qualsiasi altro elemento
</section>
ARTICLE
L’elemento <article>
dev’essere utilizzato quando s’inseriscono informazioni indipendenti dal resto del documento o della sezione in cui è racchiuso.
- Può trattarsi ad esempio di un articolo di giornale o un post in un blog o un qualsiasi altro elemento.
<article>
<header>
<h1>Titolo</h1>
<div class="autore>">Mario Rossi</div>
</header>
<p>....</p>
<!-- Contenuto articolo -->
<footer><time datetime="2017-03-01T14:00" pubdate>01/03/2017 14:00</time> </footer>
<section class="commenti">
<article>
<!-- Autore commento 1, avatar, testo commento -->
</article>
<article>
<!-- Autore commento 2, avatar, testo commento -->
</article>
<section class="aggiungi-commento">
<form method="post">
<label>Aggiungi commento:</label>
<textarea rows="5" maxlength="500"></textarea>
<button type="submit">Invia</button>
</form>
</section>
</section>
</article>
ASIDE
L’elemento <aside>
viene utilizzato per definire una porzione di codice correlata al contenuto ma separata come per esempio una sidebar.
- Le informazioni che racchiude, se rimosse, non devono incidere negativamente sulla completezza dell’informazione contenuta nell’elemento a cui è associato.
- Può essere utilizzato ad esempio per racchiudere elementi
<nav>
aggiuntivi, banner pubblicitari o note.
FOOTER
L’elemento <footer>
definisce una porzione di documento che rappresenta il piede della pagina o di una parte del documento.
- Non è prevista lacuna formattazione di default
- Analogamente alle intestazioni anche i piè di pagina possono essere molteplici all’interno di una pagina web.
<footer> © 2017 Mia Azienda - Tutti i diritti riservati </footer>
FIGURE
Il tag <figure> specifica un contenuto indipendente dal testo, come illustrazioni, diagrammi, foto, esempi di codice, ecc
- Mentre il contenuto dell'elemento <figure> è in relazione al flusso principale, la sua posizione è indipendente dal flusso principale, e se rimosso non dovrebbe influenzare il flusso del documento.
- Di norma l’elemento <figure> contiene un elemento <figcaption> che arricchisce l'elemento contenuto in <figure> con una descrizione
<figure>
<img src="img_pulpit.jpg" alt="The Pulpit Rock" width="304" height="228">
<figcaption>Una didascalia</figcaption>
</figure>
TIME
L’elemento <time>
rappresenta una data.
- È normalmente utilizzato all'interno di un elemento
<article>
- L'attributo
datetime
indica la data in forma "iso" (anno[-mese[-giorno]] [ora[:minuti[:secondi]]]
) in modo che programmi esterni che consultano l'articolo possano determinarla in modo certo
- L'attributo
pubdate
indica, se presente, che la data si riferisce alla pubblicazione dell'articolo in cui <time>
è inserito altrimenti si presumerà che la data sia la data di pubblicazione della pagina.
<time datetime="2010-04-21 11:45" pubdate ="pubdate" >
21 Pubblicato il 21 febbraio 2017 alle ore 11:45
</time>
ELEMENTI INLINE
Quando sono inseriti non danno origine a una nuova riga e possono contenere solo testo o altri elementi inline.
<p>Questo tasto è<b>grassetto</b></p>
La parte delimitata dai tag <b>...</b>
non sarà posta su una nuova riga.
Esempi come questo:
<b><p>Testo in grassetto</p></b>
sono tollerati dai browser, ma non reggono al giudizio della validazione in quanto un elemento inline non può contenerne uno di tipo blocco.
SPAN
L’elemento <span> è una generico elemento inline che definisce una porzione di testo. Non è prevista lacuna formattazione di default.
<p>Questa <span style="“font-wieight: bold”">parola</span> è in grassetto.</p>
FORMATTAZIONE
Esistono una serie di elementi inline che definiscono la funzione di una porzione di testo.
<em>
Testo enfatizzato
<strong>
Testo importante
<dfn>
Definizione
<code>
Codice
<samp>
Esempio di output
<kbd>
Imput da tastiera
<var>
Variabile
In HTML5 è compito del foglio di stile definire il formato di questi elementi.
INTERATTIVITÀ
A
Il tag <a>
definisce un collegamento ipertestuale, che viene utilizzato per collegare una risorsa internet.
- L'attributo più importante dell'elemento
<a>
è l'attributo href
, che indica la destinazione del collegamento.
- Il collegamento può essere un URL assoluta o un URL relativa
- In un URL Assoluta l'indirizzo inizia sempre con il nome host che deve essere preceduto dalla doppia barra (
//www.google.com
)
- Se il browser non trova il nome host considererà l'url come relativa e completerà l'indirizzo generando un'URL assoluta.
- Se l'URL relativa inizia con la barra semplice (
/
) come punto di riferimento per il calcolo sarà presa la cartella iniziale del sito (root) e quindi verrà aggiunto solo il nome host
- In caso contrario il calcolo verrà fatta partendo dalla cartella in cui si trova la pagina cliccata.
- All'URL posso aggiungere un segnalibro (anchor) che mi fa saltare ad un determinato punto di una pagina. Il segno dell'anchor è il cancelletto (
#
), va aggiunto alla fine dell'URL e va scorrere la pagina al punto in cui viene visualizzato l'elemento che ha come l'attributo id corrispondente.
- Per impostazione predefinita, i collegamenti verranno visualizzati come segue in tutti i browser:
- Un collegamento non visitato è sottolineato e blu
- Un link visitati è sottolineato e viola
- Un collegamento attivo è sottolineato e rosso
<a href="#su-di-me" >Su di me</a>
<a class="btn btn-primary" href="https://github.com/magicbruno" target="_blank">
magicbruno su GitHub
</a>
FORM
Il tag <form> viene utilizzato per creare un modulo HTML per l'input dell'utente.
- L'elemento <form> può contenere uno o più dei seguenti elementi del modulo:
<input>
<textarea>
<button>
<select>
<option>
<optgroup>
<fieldset>
<label>
<button>
<form action="demo_form.asp" method="get">
<label>Nome</label>
<input type="text" name="nome"><br />
<label>Cognome</label>
<input type="text" name="cognome"><br />
<input type="submit" value="Invia">
</form>
INPUT
Il tag <input>
specifica un campo di input in cui l'utente può inserire i dati.
- Gli elementi
<input>
vengono utilizzati all'interno di un elemento <form>
- La funzione di imput cambia a secondo del valore definito dall'attributo type:
- button,
- checkbox,
- color,
- date,
- datetime,
- datetime-local,
- email,
- file,
- hidden,
- image,
- month,
- number,
- password,
- radio,
- range,
- reset,
- search,
- submit,
- tel,
- text,
- time,
- url,
- week
<form action="demo_form.asp" method="get">
<label>Nome</label>
<input type="text" name="nome"><br />
<label>Cognome</label>
<input type="text" name="cognome"><br />
<input type="submit" value="Invia">
</form>
TEXTAREA
Il tag <textarea> definisce un controllo di input di testo multilinea.
- Un'area di testo può contenere un numero illimitato di caratteri.
- Per default il testo viene reso in un font a larghezza fissa (di solito Courier).
<textarea rows="5" maxlength="500">
Testo contenuto nella casella editabile
</textarea>
BUTTON
Il tag <button>
definisce un pulsante cliccabile.
- Contrariamente che per l'elemento input all'interno di un elemento
<button>
Posso inserire qualsiasi tipo di contenuto.
- Browser diversi utilizzano diversi tipi di default per l'elemento
<button>
<button>
supporta l'attributo type che può assumere i valori: button, submit e reset, gli stessi usati quando l'elemento <input> viene usato come pulsante e con lo stesso significato
<button type="button">Cliccami!</button>
SELECT
L'elemento <select>
viene utilizzato per creare un elenco a discesa.
- I tag
<option>
all'interno dell'elemento <select>
definiscono le opzioni disponibili nella lista. <select>
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
ELEMENTI MULTIMEDIALI
IMG
Il tag <img>
definisce un'immagine in una pagina HTML.
- Il tag
<img>
ha due attributi obbligatori: src e alt.
- Le immagini non sono tecnicamente inserite in una pagina HTML, ma collegate attraverso l'URL, l'indirizzo univoco la identifica. Il tag <img> crea lo spazio di per l'immagine caricata.
<img src="smiley.gif" alt="Smiley face" height="42" width="42" />
<img src="https://unsplash.it/1280/720?random" alt="Immagine caricata da unsplash.it" />
VIDEO
Il tag <video>
consente di inserire un video in una pagina WEB, ad esempio un clip filmato o un video in streaming.
- Attualmente sono tre i formati video supportati dall'elemento
<video>
:
- MP4 (Internet Explorer, Chrome, Safari, Firefox su Windows),
- WebM (Chrome, Firefox, Opera)
- Ogg (Chrome, Firefox, Opera).
<video controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
Il tuo browser non supporta il tag video.
</video>
AUDIO
Il tag <audio>
consente di inserire una risorsa audio in una pagina WEB, ad esempio una clip audioo un audio in streaming.
- Attualmente sono tre i formati audio supportati dall'elemento
<audio>
:
- MP3 (Internet Explorer, Chrome, Safari, Firefox su Windows),
- Wav(Chrome, Firefox, Opera. Safari) e
- Ogg (Chrome, Firefox, Opera).
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Il tuo browser non supporta il tag audio.
</audio>
CANVAS
Il tag HTML5 <canvas>
viene usato per disegnare la grafica, al volo, tramite scripting (di solito Javascript). L'elemento <canvas>
non ha capacità di disegno proprie (è solo un contenitore per la grafica). È necessario utilizzare uno script per disegnare effettivamente la grafica.
Elenco completo tag HTML