HTML
HTML(Hyper Text Markup Language).
Non è un linguaggio di programmazione, ma è un linguaggio di markup: descrive la struttura delle pagine web: dove e
come rappresentare gli elementi.Il codice si sviluppa attraverso i tag che permettono di descrivere le caratteristiche di
formattazione e la posizione degli elementi in una pagina web.
É un linguaggio interpretato dai browser: i documenti di codice sorgente Html stanno immagazzinati in server e
vengono inviati da questi ultimi al browser dell’utente (client) che sta visitando la pagina e il browser lo interpreta
mostrando il suo contenuto grafico.
STORIA DELL’HTML
1980: prima apparizione del linguaggio HTML , sviluppato da Tim Berners-Lee e Robert Cailliou al CERN di Ginevra.
Inizialmente nacque come un sistema per condividere documenti e prese il nome di sistema di hyperText, cioè una rete di
documenti, una struttura no sequenziale, connessi l’uno a l’altro da link.
1991: si creò la prima versione HTML.
1993: venne ufficializzata e si parlò di standard web.
1995: nacque il primo standard chiamato HTML2.0 e ci fu una grande diffusione e nacque il W3C.
1997: il W3C creò lo standard HTML3.2 che aveva le novità di incorporare applet Java e poter inserire testi nelle
immagini.
1998: con lo standard HTML4.0 ci fu una svolta nel web, con la nascita del CSS e la capacità di eseguire il codice sul
computer dell’utente.
1999: il W3C pubblicò la loro ultima versione HTML4.01, considerata una attualizzazione dell’HTML4.0, dopo si
concentrò in un altro linguaggio, l’XHTML.
2004: le imprese di Internet più importanti al mondo si riunirono e crearono una nuova organizzazione: la WHATWG, per
dedicarsi ed avanzare con lo standard HTML.
2008: il WHATWG creò una nuova e potente versione standard dell’HTML chiamata HTML5 che è il linguaggio attuale.
Con la sua potenza e diffusione il W3C fa retromarcia e collabora insieme al WHATWG.
STRUMENTI NECESSARI
L’HTML e il CSS sono linguaggi che sviluppano in testo semplice, per questo possiamo usare semplicemente un
qualsiasi editor di testo.Esistono molti altri strumenti e programmi che rendono più facile la creazione di pagine web.
Dato che sono linguaggi interpretati per vedere il contenuto del codice sorgente basta aprire il file di testo con un
browser.
SERVER XAMPP
È un pacchetto di programmi utile per la creazione di un ambiente server che permette di contenere, gestire ed eseguire le
proprie pagine web in locale sul proprio computer, prima di pubblicarle in Internet. È scaricabile su Internet e deve essere
installato sul computer.
X: cross-platform, gira su diverse piattaforme (S.O).
A: Apache (server http)
M: MySQL (database)
P: PHP (interprete)
P: PEARL (interprete)
In Linux, dal terminale:
- per lanciarlo: sudo/opt/lampp/xampp start
- per chiuderlo: sudo/opt/lampp/xampp stop
STRUTTURA DEL FILE HTML
DTD: Definizione Tipo di Documento
<HTML>
<head>
<title>...</title>
</head>
<body>
...
</body>
</HTML>
<head> . . . </head>
Tra questi tag scriviamo la parte di codice non visibile in una pagina web, contiene informazioni come:
- titolo della pagina: nel tag <title>… </title> si scrive il titolo della pagina che appare sopra la scheda della pagina web
del browser e nei risultati di ricerca. Deve definire concretamente il contenuto della pagina.
- Meta-tags: servono per dare informazioni della pagina web ai motori di ricerca.
- Stili: vengono definiti gli stili CSS.
-Script: codice di linguaggi di programmazione come javascript.
<body . . . </body>
In questi tag si scrive quello che si chiama corpo delle pagine web, ovvero la parte visibile.
META-TAGS
Danno informazioni addizionali delle pagine web ai browser e motori di ricerca e permettono una migliore indicizzazione
e posizionamento. Sono:
ELEMENTI HTML
Elementi di codice
<code> . . . </code>
Si usa per definire, al suo interno, un pezzo di codice di programmazione.
Il testo viene mostrato in carattere monospace.
Questo tag non comprende spazi e andare a capo, per questo, spesso, è consigliato inserirlo in un tag <pre>…</pre>.
<kbd> . . . </kbd>
Si usa per definire, al suo interno, l’input da tastiera.
Il testo viene mostrato in carattere monospace.
<samp> . . . </samp>
Si usa per definire, al suo interno, l’output di un programma.
Il testo viene mostrato in carattere monospace.
<var> . . . </var>
Si usa per definire, al suo interno, una variabile di un programma o di una espressione matematica.
IMMAGINI
In una pagina web possono essere inserite immagini nei formati: GIF, JPG, PNG.
Il tag è: <img src=”...”>
L’attributo src è obbligatorio inserirlo e dentro si deve indicare il file di immagine o la sua url.
È consigliato anche inserire l’attributo alt=”...” con dentro un testo che rappresenta l’immagine, per consentire agli utenti
che non visualizzano l’immagine di capire di cosa si tratta.
LINK
Permettono di navigare tra differenti pagine HTML: nella propria pagina, pagine esterne e file di download.
Il tag è: <a href=”...”>Testo ancora</a>
In href si scrive il percorso di destinazione.
Il testo ancora è il testo che viene mostrato nella pagina come link, può essere anche una immagine.
Consigliato sempre inserire gli attributi title=”...” e target”...”
Di default i link appaiono nel browser sottolineati e:
- link non visitato: blu;
- link visitato: viola;
- quando si passa sul link con il mouse: rosso.
Questo stile può essere cambiato con i CSS.
1) Link Interni: sono quelli che si dirigono in altri punti della stessa pagina, si può creare una navigazione dentro una
unica pagina HTML. Per farlo:
- si crea, dove si vuole, il link da cliccare, con <a href=”#nome_punto”>punto dove andare </a>
- si crea il punto di destinazione, che si colloca nel punto dove vogliamo che si vada cliccando il link precedente,con:
<a name=”nome_punto”></a>
2) Link Locali: sono quelli che si dirigono ad altre pagine dello stesso sito web. Sono sempre usate dato che un sito a
sempre più di una pagina. Si deve creare un tag come:
<a href=”percorso/file.html”>Testo ancora</a>
In genere, i siti web hanno molti file e per questo vengono organizzati per cartelle. Per questo in href bisogna inserire il
percorso per arrivare ad un file. Si crea una gerarchia di cartelle e si usa ../ per regredire di un livello nella gerarchia.
3) Link Remoti: sono quelli che si dirigono a pagine esterne, fuori dal sito web.
Il tag è: <a href=”http://www.sitoesterno.com”>Nome sito esterno</a>
Si deve scrivere anche il protocollo http:// per indicare al browser che la pagina sta in Internet e non interna al sito.
4) Link a Email: sono usati in pagine che non hanno nessun tipo di programmazione, negli altri casi, i linguaggi, come
javascript, dispongono di librerie per mandare email. Questo link non fa altro che chiamare il programma per mandare
email configurato di default. Il formato è:
<a href=”mailto: email”>email</a>
Link immagine: è possibile anche far si che una immagine diventi un link, in cui è possibile cliccarci sopra. Questo
inserendo al posto del testo ancora il tag dell’immagine img:
<a href=”...”><img src=”...”></a>
TABELLE
È possibile creare tabelle nelle pagine HTML utili per esempio per un prezzario.
Il tag per definire la tabella, in cui devono essere poi definite le righe e colonne, è: <table> . . . </table>
Si definisce prima la riga con <tr> . . . </tr> e dentro di essa le celle delle colonne con <td> . . . </td>
Per dare dei titoli, nella prima riga, ai vari elementi della colonna, si usa il tag <th>. . . </th>, che per default mostra il
testo in grassetto e centrato.
È possibile annidare tabelle dentro altre tabelle, in una cella di un altra tabella.
Per disegnare il bordo della tabella bisogna inserire l’attributo border=”...” con un e numerico per lo spessore, altrimenti
la tabella è senza bordo.
Il bordo precedente è formato da due linee per lato, se si vuole un bordo normale si usa l’attributo border-collapse.
Si possono usare gli attributi:
- colspan=”n” per unire celle in orizzontale (n colonne);
- rowspan=”n” per unire celle in verticale (n righe).
LISTE
Permette di generare liste di dati.
È possibile dargli stili con i CSS.
1) Lista Ordinata: mostra gli elementi della lista numerati, si definisce con il tag <ol>. . . </ol> e dentro i suoi elementi
con i tag <li>. . . </li>, la struttura è:
<p>Nome lista</p>
<ol>
<li>elem</li>
<li>elem</li>
...
</ol>
L’ordine inizia dal numero 1, ma si può far iniziare il conto da un numero n con l’attributo start”n”.
2) Lista Non Ordinata: mostra gli elementi della lista con un pallino ●, si definisce con il tag <ul>. . . </ul> e dentro i
suoi elementi con i tag <li>. . . </li>, la struttura è:
<p>Nome lista</p>
<ul>
<li>elem</li>
<li>elem</li>
...
</ul>
3) Lista di definizioni: permette di creare una lista di termini con la corrispondente definizione. Si definisce nel tag
<dl> . . . </dl> e dentro si usa il tag <dt>… </dt> per i termini e il tag <dd>… </dd> per le loro definizioni:
<p>Nome lista</p>
<dl>
<dt>termine</dt>
<dd>definizione</dd>
...
</dl>
MAPPATURA DI IMMAGINI
Una mappa dell’immagine consiste nel creare in essa aree cliccabili con diversi link ad altre pagine.
1) Si aggiunge, nel tag dell’immagine <img>, l’attributo usemap=”#nome_mappa” che specifica il nome della mappa a
cui fare riferimento.
2) Si definisce la mappa con il tag <map name=”nome_mappa”> … </map>, dove in name si deve inserire lo stesso
valore di usemap.
3)Nel tag <map>… </map> vanno definite tutte le aree cliccabili dell’immagine con il tag:
<area shape=”” coords=”” href=””>
Sono obbligatori gli attributi:
- shape: definisce la figura geometrica (forma) dell’area, può avere i valori:
. rect:(rettangolo), circle(cerchio), poly(poligono).
- coords: definisce le coordinate per la posizione dell’area nell’immagine:
- Per rect si definiscono il vertice in alto a sinistra e il vertice in basso a destra del rettangolo, quindi quattro
. coordinate (x,y , x,y).
-per circle di definiscono le coordinate del centro (x,y) e la lunghezza del raggio L, quindi (x,y,L).
- per poly si definiscono le coordinate x,y per ogni punto.
- href: link di destinazione facendo clic sull’area dell’immagine.
FORMULARIO
Sono uno strumento che permettono nelle pagine web di avere un sistema per prendere dati, ovvero gli input dell’utente.
Gli elementi di un formulario si definiscono dentro il tag <form> . . . </form>.
Questo tag deve contenere tre attributi:
- name: per dare un nome al formulario, utile per javascript. Ogni elemento deve contenerlo.
- method: specifica il metodo HTTP da usare quando si inviano i dati del formulario, come valori si usano:
- post: non visualizza i dati del formulario nella URL nella barra degli indirizzi.
Usarlo se i dati del formulario contengono informazioni sensibili e personali.
- get: rende visibili i dati del formulario nella URL nella barra degli indirizzi, nella forma name=value.
Non usarlo per inviare dati sensibili, perché verranno mostrati nella URL.
- action: indica l’azione da realizzare quando l’utente invia il formulario, che può essere: la propria pagina, un’altra
pagina in cui vengono inviati i dati, o un CGI che sono piccoli programmi accessibili dal web che permettono alcune
funzionalità, come, tramite un semplice formulario, inviare email direttamente dalla pagina.
ELEMENTI DI UN FORMULARIO
Campo di Testo <input type=”text” name=”” id=”” value=””/>
Consente all’utente di inserire un testo in un campo.
Vediamo che esso può contenere una serie di attributi:
- name: si dà un nome all’elemento, nel caso in cui un formulario viene inviato ad un altra pagina.
- id: utile per javascript, si dà un e unico per permettere di accedere in dinamico a questo elemento per modificarlo.
- value: spesso si lascia vuoto, rappresenta un testo e già inserito nel campo.
- disabled: disabilita il campo e non è possibile scrivere al suo interno. È spesso usato in pagine con programmazione per
obbligare all’utente di compilare un campo prima di un altro.
- maxlength: limita il numero di caratteri che si possono scrivere nel campo (20 caratteri di default).
- size: definisce la lunghezza del campo, ma è consigliato usare i CSS.
Tendina di selezione
Mostra una tendina con una lista di opzioni selezionabili dall’utente.
Si usa quando si hanno liste con molte opzioni.
Il tag per creare la tendina è <select name=”selezione”> . . . </select>.
Può contenere gli attributi:
- size: definisce il numero di opzioni che si devono mostrare quando la tendina è chiusa.
- multiple: permette di selezionare più di una opzione (premendo ctrl).
Dentro il tag della tendina si inseriscono le opzioni con: <option value=””> e </option>.
Può contenere l’attributo selected che indica se una opzione sta selezionata di default.
Il tag <optgroup label=””> opzioni </optgroup> consente di raggruppare le opzioni correlate, che devono essere inserite
al suo interno, dandogli una etichetta, un titolo ad esse.
Bottoni
Ci consentono di interagire con il formulario e in generale con la pagina. Ci sono tre tipi di bottone:
1)Di invio di un formulario <input type=”submit” name=”bottone” value=”Invio” action=””/>
Invia il formulario a quanto specificato nell’attributo action.
In value si indica la scritta che deve apparire sul bottone.
2) Reset formulario <input type=”reset” name=”bottone” value=”Resetta”/>
Consente di resettare, svuotare quello gia scritto e selezionato nel formulario ripristinando i valori iniziali.
3)Bottone classico <button> … </button>
Non esegue nessuna azione in questo modo, per essere utile necessita di codice javascript.
DINAMISMO
Il dinamismo si basa in eventi, cioè attributi, per elementi html, che permettono di eseguire azioni.
Queste azioni vengono eseguite sempre nel client, cioè le funzioni dinamiche si eseguono nel computer dell’utente che
visita la pagina.
Questi eventi generano una chiamata ad un linguaggio di script, quello più utilizzato è il javascript, ogni evento ha
sempre associata una funzione in javascript
Possiamo creare funzioni javascript direttamente nel file html nell’<head> tra il tag <script> . . . </script>, oppure,
consigliato, creare un file esterno con estensione .js che carichiamo poi nell’<head> del file html con:
<script type=”text/javascript” src=”file.js”>
EVENTI
Gli eventi sono attributi che permettono di eseguire azioni, generando una chiamata a un linguaggio di script (javascript).
Gli eventi sono sempre eseguiti al lato client, ovvero sul computer dell’utente che visita la pagina.
Come valori hanno il nome dello script, ovvero della funzione definita per compiere una determinata azione.
Eventi di pagina
Questi si inseriscono nel <body> della pagina:
- onload: si esegue dopo che la pagina si è completamente caricata.
- onunload: si esegue quando si chiude una pagina.
- onresize: si esegue quando l’utente cambia la dimensione della finestra.
- onscroll: si esegue quando si scrolla la pagina o elementi che contengono scroll, con mouse o tastiera.
Eventi di tastiera
Quando si hanno compi per scrivere, si possono usare in tutti gli elementi del <body>, tranne <br >e frames:
- onkeydown: si esegue quando si preme un qualsiasi tasto della tastiera.
- onkeypress: si esegue quando si premono tasti della tastiera che stampano a video.
- onkeyup: si esegue quando si rilascia il tasto della tastiera.
- onhelp: si esegue premendo il tasto F1.
Eventi di formulario
Si usa negli elementi di un formulario:
- onchange: si attiva quando viene modificato il valore di un elemento.
- onsubmit: si esegue quando viene inviato il formulario.
- onreset: si esegue quando si ripristina un formulario, cioè si fa clic sul bottone reset.
- onselect: si esegue quando si seleziona un testo di un elemento.
- onblur: si esegue nel momento in cui si esce dall’elemento.
- onfocus: si esegue nel momento in cui si entra nell’elemento.
Eventi di contenuti
- oncopy: si esegue quando si copia il contenuto di un elemento.
- oncut: si esegue quando si taglia il contenuto di un elemento.
- onpaste: si esegue quando si incolla un contenuto nell’elemento.
Titolo
È visibile nella parte superiore di una pagina web e nei risultati della pagina nel motore di ricerca.
Deve essere un testo compreso da 40/80 caratteri e definire fedelmente il contenuto della pagina.
Meta-tag
Danno informazioni hai browser e motori di ricerca di come è creata la pagina web.
Per il posizionamento le più importanti sono: description, keywords, robots e canonical.
Struttura
Come è strutturata una pagina web è molto importante sia per gli utenti che per i motori di ricerca, deve essere semplice
da leggere e da seguire.
Si tende a dare una struttura gerarchica, ad albero a un sito, partendo da un punto di origine.
Si usano gli elementi lista html se si devono fare numerazioni dei link e di sezioni.
Elementi
È consigliato che tutte le immagini includano gli attributi alt e title che devono definire in testo il contenuto
dell’immagine, questo perché un utente vede l’immagine e sa di cosa si tratta, ma i motori di ricerca no.
Per i link invece, i motori di ricerca li leggono e sanno di cosa si tratta, ma necessitano sapere, tramite l’attributo title,
cosa c’è dall’altro lato, cioè a che pagina fanno riferimento.
Un altro punto strutturale e che elementi CSS e Javascript siano esterni.
Contenuto
Il contenuto di un sito deve essere unico, originale e relazionato con la tematica di cui tratta.
È concesso creare e saper catalogare tutte le pagine di cui si necessita per poter mostrare completamente il contenuto in
modo ordinato e coerente.
Abbiamo detto che si tende dare ad un sito una struttura ad albero. Questa struttura ha dei livelli, di pagine e sotto pagine,
dalla pagina iniziale, per questo gli esperti SEO consigliano che tutto il contenuto importante deve trovarsi a non più di
quattro livelli dalla pagina iniziale, in modo che i motori di ricerca li considerano come importanti.
Evitare pagine non originali con contenuto duplicato o simile ad un’altra pagina già esistente, i motori di ricerca
possono penalizzarle considerandole come pagine per ingannare gli utenti.
Evitare cloaking, ovvero fare in modo di nascondere testo agli occhi dell’utente, come inserire testo dello stesso colore
del fondo.
1)
html, body {
height:100%;
}
2) Racchiudiamo tutto il contenuto della pagina in un div con id=”wrap”,fino alla sezione footer, e con i css:
#wrap{
min-height:100%;
height:auto;
height:100%;
margin:0 auto -100px; /* margine negativo altezza footer */
}
3)
footer{
height:100px; /* altezza footer */
clear:both; /* clear di eventuali float se presenti nel layout */
}
HTML 5
NUOVI ELEMENTI
HTML5 è supportato in tutti i browser moderni.
È possibile definire e aggiungere propri elementi con uno stile a una pagina HTML, ad esempio definiamo (nell’head)
un nuovo elemento <myelem> con:
<script> document.createElement(“myelem”)</script>
<style>
myelem {
display:block;
background-color: #ddddd;
font-size: 30px;
}
</style>
<body>
<myelem> Nuovo elemento</myelem>
</body>
HTML5 offre nuovi elementi per una migliore struttura del documento.
Elemento <section>
L' elemento <section> definisce una sezione in un documento.
Una sezione è un raggruppamento tematico di contenuti, tipicamente con un'intestazione.
Normalmente una homepage può essere suddivisa in sezioni per l'introduzione, il contenuto e le informazioni di contatto.
Elemento <article>
L' elemento <article> specifica contenuti indipendenti e autonomi. Un articolo dovrebbe avere senso da solo, e
dovrebbe essere possibile leggerlo indipendentemente dal resto del sito web.
Esempi di dove un <article> può essere utilizzato: Post sul forum, Post sul blog, Articolo di giornale.
Elemento <header>
L' elemento <header> dovrebbe essere usato come contenitore per i contenuti introduttivi, un'intestazione per un
documento, una sezione, un article.
Ci possono essere diversi elementi <header> in un documento.
Elemento <footer>
L'elemento <footer> specifica un piè di pagina per un documento o una sezione, dovrebbe contenere informazioni sul
suo elemento contenitore, in genere contiene: l'autore del documento, informazioni sul copyright, collegamenti a termini
di utilizzo, informazioni di contatto, ecc.
Elemento <nav>
L'elemento <nav> definisce una serie di collegamenti di navigazione, inteso solo per il blocco principale dei link di
navigazione (menu).
NON tutti i collegamenti di un documento devono essere all'interno di un <nav>.
Elemento <aside>
L'elemento <aside> definisce contenuti esterni che non fanno parte strettamente alla pagina (barra laterale), ma il
contenuto dovrebbe essere correlato a quello circostante.
È consigliato l'utilizzo di questo elemento per contenuti pubblicitari ed elementi di navigazione che puntino all'esterno del
documento.
Il valore dell’attributo list deve far riferimento all’id del tag <datalist>.
- novalidate si usa in <form>, specifica che i dati del formulario non devono essere validati quando inviati.
- autofocus specifica che il campo di input deve essere attivo per ricevere il dato al caricamento della pagina.
- form assegna ad un <form> un eventuale campo <input> situato fisicamente al di fuori del form stesso, facendo
riferimento all’id del form assegnato.
- formaction permette di inviare il formulario a destinazioni diverse, praticamente oltre a quanto dichiarato con l’attributo
action di form. Si usa con gli elementi <input> type image e submit, anzichè creare tanti form uguali, se ne crea uno solo
e si decide con formaction a chi inviarlo.
- formenctype specifica in che modo i dati del formulario devono essere codificati quando vengono inviati. Si può
applicare solo per i moduli con method = "post" e con gli elementi type="submit" e type="image".
- formmethod sovrascrive l'attributo method dell’elemento <form>, permette di cambiare il metodo di invio post o get.
Si usa con gli elementi <input> type image e submit.
- formnovalidate esclude il formulario da una validazione, si usa solo con l’elemento bottone submit. Per inviare un
formulario senza validazione, o si dichiara l’attributo novalidate in <form> oppure si usa formnovalidate in un secondo
bottone di invio per avere entrambe le possibilità di validazione o no.
- formtarget sostituisce l'attributo target in <form> può essere usato in elementi di tipo submit e image e permette di
scegliere dove visualizzare l’invio del formulario, se su una nuova finestra del browser formtarget=”_blank”.
- width e height servono per specificare la larghezza e l’ altezza delle immagini,quindi può essere applicato al solo
elemento input type image. È consigliato usarli sempre.
- list viene usato nell’elemento <datalist> per richiamare una lista di dati selezionabili.
- min e max specificano valori minimi e valori massimi che un campo può accettare. Si usa con gli elementi <input> di
tipo number, range, date, datetime-local, month, time.
- multiple specifica che l'utente può immettere più di un valore ma solo negli elementi <input> di tipo email e file.
- pattern specifica una regular expressions, praticamente permette di vincolare quantità e tipo di dato da inserire. Si usa
in elementi <input> di tipo text, search, url, tel, email, e password. È consigliato aggiungere l'attributo title per
descrivere il pattern per aiutare l'utente.
- placeholder inserisce provvisoriamente una indicazione scritta di un colore grigio chiaro nella casella di input che
sparisce nel momento in cui l’utente compila il campo stesso, utile per indicare il tipo di dato o lo scopo atteso da un
campo. Si usa in elementi <input> di tipo: text, search, url, tel, email e password.
- required specifica che un campo di input, non può essere omesso, deve essere obbligatoriamente compilato prima di
inviare il formulario.
Si usa negli elementi <input> di tipo: text, search, url, tel, email, password, date, number, checkbox, radio e file.