SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Giuseppe Vizzari
 Concetti di base: linguaggi markup, un minimo di storia
 HTML5 (+ DOM) + CSS3 + JavaScript: il quadro generale
 Minima introduzione su HMTL
 Minima introduzione su CSS
 Minima introduzione su DOM
 Considerazioni varie
 Cosa c’è di nuovo in HTML5?
 Looking forward: JavaScript
 Linguaggio di programmazione: utilizzato per comunicare istruzioni a
una macchina di calcolo, per definire programmi che controllino il
comportamento di un calcolatore
 Linguaggio di markup: utilizzato per annotare un documento in modo
tale che l'annotazione sia sintatticamente distinguibile dal testo
 Esempi di linguaggi di markup:
 TeX (e LaTeX)
 SGML
 HTML, XHTML, XML
 Le annotazioni possono avere diverse finalità:
 di presentazione (definiscono come visualizzare il testo al quale sono
associate)
 procedurali (definiscono istruzioni per programmi che elaborino il testo al
quale sono associate)
 descrittive (etichettano semplicemente parti del testo, disaccoppiando la
struttura dalla presentazione del testo stesso)
http://visual.ly/html5-past-present-and-future
Dal web degli
autori di pagine
HTML scritte a
mano…
… al web delle
pagine HTML
generate da
programmi
(sistemi di
gestione di blog o
CMS)
Web app
Mobile appDesktop app
 Cos’è l’HTML?
 HTML (Hyper Text Markup Language) è un linguaggio di
markup per dare struttura ai contenuti (web)
 La specifica HTML è definita dal W3C (World Wide Web
Consortium)
whichElement?
Trying to answer that age old
question:
Should that be a div, a span, or
something else?
Home
Contribute
About
One of the main challenges we see in
building semantic content is picking
what tag to use when.
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
<h1>whichElement?</h1>
<h2>Trying to answer that age old
question:</h2>
<h2>Should that be a div, a span, or
something else?</h2>
<ul>
<li>Home</li>
<li>Contribute</li>
<li>About</li>
</ul>
<p>One of the main challenges we see in
building semantic content is picking what
tag to use when. This site seeks to help with
that. Now, before we get all judgy and
preachy let me get a few tenants out
there:</p>
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
 Cosa si intende per CSS?
 CSS (Cascading Style Sheets) è un linguaggio per dare uno
stile (di presentazione/visuale) ai contenuti (web)
 La specifica dei CSS è definita dal W3C
<style type="text/css">
h1{
color: red;
}
h2{
color: blue;
font-style: italic;
}
p{
color: white;
background-color: black;
}
</style>
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
Non è detto che
sia un bello stile!<head>
<link rel="stylesheet" type="text/css” href="theme.css">
</head>
<style type="text/css">
h1{
color: red;
font-size: 16px;
}
h2{
color: blue;
font-size: 26px;
}
ul{
list-style: none;
clear: both;
display: block;
width: 100%;
height: 30px;
padding: 0;
}
li{
float: left;
padding-right: 20px;
}
</style>
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
 Cosa si intende per DOM?
 DOM (Document Object Model) è una interfaccia neutrale
rispetto al linguaggio di programmazione e alla piattaforma
utilizzata per consentire ai programmi l’accesso e la modifica
dinamica di contenuto, struttura e stile di un documento (web)
 DOM è una API definita dal W3C (e implementata da ogni
browser moderno) per l’accesso e la gestione dinamica di
documenti XML e HTML
<html>
<head>
<title>Example ...</title>
<meta charset="UTF-8">
<meta name="author" content="John Doe">
</head>
<body>
<h1>Heading 1</h1>
<p>This is a paragraph of text with a
<a href="/path/page.html">link in it</a>.
</p>
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
</body>
</html>
 Ogni nodo può essere caratterizzato da
attributi che ne facilitano
l’identificazione, la ricerca, la selezione
 Un identificatore univoco (attenzione: il
DOM non garantisce l’unicità)
 Una “classe” che indica l’appartenenza ad
un insieme che ci è utile definire
 Il browser stesso fornisce funzionalità di
ricerca:
 getElementById(IdName)
 getElementsByClassName(ClassName)
 … diverse altre meno interessanti
<h1>A One Page FAQ</h1>
<div id=”introText">
<p>bla bla bla</p>
</div>
<h2>I've heard that JavaScript is the
long-lost fountain of youth. Is this
true?</h2>
<div class="answer">
<p>bla bla bla</p>
</div>
<h2>Can JavaScript really solve all of
my problems?</h2>
<div class="answer”>
<bla bla bla</p>
</div>
<p id="foo">
This is a paragraph of text with a
<a href="/path/to/page.html">link</a>
.
</p>
Se volessimo cambiare lo stile di un singolo paragrafo? O
tutti paragrafi di una certa classe?
Possiamo specificare un selettore più preciso rispetto al
nome del tag, per esempio specificando il nome di una
classe o un identificatore di elemento del DOM:
p.intro {
color: red;
}
Questo stile sarà applicato solo ai tag di classe intro
<p class="intro">
I principali selettori sono
● tag name: il semplice nome del tag
o p { ... } //affects to all <p> tags
● dot (.): applicabile a un tag, indica una classe
o p.highlight { ... } //affects all <p> tags with class="highlight"
● sharp character (#): applicabile a un tag, indica un
identificativo
o p#intro { ... } //affects to the <p> tag with the id="intro"
● two dots (:): stati comportamentali (ad esempio evento
mouseover)
o p:hover { ... } //affects to <p> tags with the mouse over
● brackets ([attr='value']): tag con un valore specifico per un
attributo 'value'
o input[type="text"] {...} // affects to the input tags of the type text
 Le media query possono essere
viste come particolari selettori
capaci di valutare le capacità
del device di accesso alla pagina
 Non solo schermi, anche
stampanti o sistemi text-to-
speech!
 Si possono controllare ad
esempio:
 Larghezza e altezza (width,
height) del device o della finestra
 Orientamento dello schemo
(landscape/portrait)
 Risoluzione
 Se la pagina è più larga di 480
pixel (e si sta visualizzando
sullo schermo), applica
determinati stili agli elementi
con id “leftsidebar” (un menu)
e “main” (la colonna centrale)
@media screen and (min-width: 480px){
#leftsidebar {width: 200px; float: left;}
#main {margin-left:216px;}
}
 Esistono potenzialmente diversi stylesheet:
 L’autore della pagina in genere ne specifica uno (il modo più
comunemente inteso) o più d’uno
 Il browser ne ha uno, o un vero e proprio CSS o simulato nel loro codice
 Il lettore, l’utente del browser, ne può definire uno proprio per
customizzare la propria esperienza
 Dei conflitti sono quindi possibili (inevitabili), ed è necessario
definire un algoritmo per decidere quale stile vada applicato a un
elemento
 Non entriamo nel dettaglio, ma la priorità tiene conto, in ordine di
importanza, dei seguenti fattori associati alle regole:
 Importanza (flag specifico !important per un attributo)
 Specificità (per esempio, id > class > tag)
 Ordine nel sorgente (lo più “recente” vince)
 L’impostazione di HTML e CSS separa nettamente il
contenuto dalla modalità di visualizzazione
 Ricordo che quello di “separation of concerns” è un principio di
design altamente desiderabile in contesto informatico
 Purtroppo lo stile invece può avere un forte coupling con il
contenuto, come risulta dagli esempi precedenti
 Il browser non è solamente un banale visualizzatore di pagine
scritte in HTML, è un vero e proprio ambiente di sviluppo (in
particolare contiene un interprete Javascript e vari strumenti
di debug, ma ne parleremo più avanti) che fornisce numerose
funzionalità abilitanti
 Non ho senso estetico, non ho
voglia / tempo di definire un
CSS decente (che peraltro è un
lavoro non banale) come posso
fare?
 Esistono numerosi “front-end
framework”, dai più sofisticati ai
più semplici, naturalmente open
source, ad esempio:
 Bootstrap
(http://getbootstrap.com)
 Foundation
(http://foundation.zurb.com)
 Skeleton (http://getskeleton.com)
 Nuovi elementi semantici per la strutturazione delle pagine
 article, section, aside, header, footer, etc
 Nuovi elementi di input e multimediali
 Widget per input search, email, url, number, tel, ma anche range,
date…
 … purtroppo supporto non uniforme da tutti i browser
 audio, video, canvas
 Nuove API JavaScript per la manipolazione delle pagine
 Offline data, drag and drop, web storage
 Chiariamo brevemente cosa si intende per semantica in HTML5 e
facciamo qualche esempio di widget per l’input
 Parleremo di web semantico nella seconda parte del corso qui intendiamo un
utilizzo sensato e comprensibile dei tag HTML
 Esempi di usi sensati:
 <p> per definire un paragrafo
 <ul> per definire una lista di elementi il cui ordine non è importante
 <address> per indicare informazioni relative a un indirizzo
 <div> e <span> per contenere informazione che si vuole delimitare per qualche motivo
(successive manipolazioni)
 Esempi di usi non ragionevoli rispetto alla semantica dei tag:
 <p> per andare a capo
 <blockquote> per gestire l’indantazione
 <h1> per ingrandire del testo
 L’HTML dovrebbe non contenere informazione di presentazione, riservata ai
CSS
 Nessun tag <font>, <b>, <i>
 No a utilizzo di stili definiti “in linea”
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
<div id="header">
<h1>The Awesome Blog of Awesome</h1>
<p class="tagline">Awesome is a State of Mind</p>
</div>
<header>
<h1>The Awesome Blog of Awesome</h1>
<h2>Awesome is a State of Mind</h2>
</header>
 HTML 5
 Prima...
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
Analogamente
esiste un tag footer
<div id="nav">
<ul>
<li><a href="">Home</a></li>
<li><a href="">Blog</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</div>
<nav>
<ul>
<li><a href="">Home</a></li>
<li><a href="">Blog</a></li>
<li><a href="">About</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
 Prima  HTML 5
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
<div class="post”>
<div class="postheader">
<h3><a href="">I Scream My Thoughts</a></h3>
<p class="date">August 10, 2011</p>
</div>
<p>You probably haven't heard of them duis</p>
</div>
<article>
<header>
<h1><a href="">I Scream My Thoughts</a></h1>
<time>August 10, 2011</time>
</header>
<p>You probably haven't heard of them duis </p>
</article>
 Prima  HTML5
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
<div class=”content”>
<div class="post”>
...
</div>
<div class="post”>
...
</div>
<div class="post”>
...
</div>
</div>
<section>
<article>
...
</article>
<article>
...
</article>
<article>
...
<article>
</section>
 Prima  HTML5
Nota: questo è un suggerimento,
non una prescrizione dura. In
particolare, nulla vieta di avere
delle sezioni all’interno di un
articolo stesso…
https://www.w3schools.com/html/h
tml5_semantic_elements.asp
…
</div>
</div>
</div>
<div id=“footer”>
</div>
</body>
…
</div>
</article>
</section>
<footer>
</footer>
</body>
 Prima di questi tag, la chiusura
della pagina appariva così:
 Con i nuovi tag HTML5 è più
leggibile:
In generale, a parte essere una notazione più concisa e che richiede
meno definizioni di classi, le gerarchie di contenuti più leggibili e
analizzabili in fase di progettazione, manutenzione e debug
• Supporto non uniforme…
• I diversi browser tendono a customizzare
l’aspetto del box
<input type=“search” name=“search” />
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
• Fornisce una forma di validazione del dato inserito
• Forza la tastiera specifica per l’email su dispositivi iOS
<input type=“email” name=“email” />
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
• Fornisce una forma di validazione del dato inserito
• Nei diversi browser presenta apparenze
diverse
<input type=“date” name=“dob” />
Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
 Abbiamo capito cosa sono HTML, CSS e DOM…
 … che ci forniscono il necessario per definire contenuti (web), loro stuttura
(comprese regole di accesso e modifica), stile grafico
 Per approfondimenti specifici ed esempi:
 https://www.w3.org/Style/Examples/011/firstcss.en.html
 https://www.w3schools.com
 https://www.tutorialspoint.com/css/
 Manca il modo di definire e governare la dinamicità della pagina, il modo
della pagina di cambiare in modo reattivo al comportamento dell’utente o
anche proattivo, senza necessariamente dover attendere uno stimolo
dall’utente
 Javascript è il linguaggio di scripting che svolge questa funzione, ne
parleremo più avanti in esercitazioni dedicate
 Domande su questa parte sono previste tanto nel compitino quanto negli
scritti successivi

Weitere ähnliche Inhalte

Was ist angesagt?

WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19Giuseppe Vizzari
 
Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Giuseppe Vizzari
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web IIGiuseppe Vizzari
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Francesco Trucchia
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerHtml e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerMatteo Magni
 
7 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/177 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/17Giuseppe Vizzari
 
SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiSES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiTSW
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Matteo Magni
 
Introduzione a JavaScript e jQuery (2/2)
Introduzione a JavaScript e jQuery (2/2)Introduzione a JavaScript e jQuery (2/2)
Introduzione a JavaScript e jQuery (2/2)Giuseppe Vizzari
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 

Was ist angesagt? (20)

Il browser
Il browserIl browser
Il browser
 
9 - Ricercare nel Web
9 - Ricercare nel Web9 - Ricercare nel Web
9 - Ricercare nel Web
 
WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19
 
8 - Il browser
8 - Il browser8 - Il browser
8 - Il browser
 
Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web II
 
7 - Web application e CMS
7 - Web application e CMS7 - Web application e CMS
7 - Web application e CMS
 
6 - Il browser - 16/17
6 - Il browser - 16/176 - Il browser - 16/17
6 - Il browser - 16/17
 
07 - Web apps e CMS
07 - Web apps e CMS07 - Web apps e CMS
07 - Web apps e CMS
 
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
Reingegnerizzazione di un Content Management System verso l'accessibilità sec...
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerHtml e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
09 - Ricercare nel Web I
09 - Ricercare nel Web I09 - Ricercare nel Web I
09 - Ricercare nel Web I
 
7 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/177 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/17
 
10 - Ricercare nel web II
10 - Ricercare nel web II10 - Ricercare nel web II
10 - Ricercare nel web II
 
Web feed e aggregatori
Web feed e aggregatoriWeb feed e aggregatori
Web feed e aggregatori
 
SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei sitiSES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
SES Milano 2006 - Luca Schibuola, La giusta architettura dei siti
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Introduzione a JavaScript e jQuery (2/2)
Introduzione a JavaScript e jQuery (2/2)Introduzione a JavaScript e jQuery (2/2)
Introduzione a JavaScript e jQuery (2/2)
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 

Ähnlich wie HTML (+ DOM) + CSS

Presentazione Corso - Parte 1
Presentazione Corso - Parte 1Presentazione Corso - Parte 1
Presentazione Corso - Parte 1Giorgio Carpoca
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoriaDiego La Monica
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5orestJump
 
Html base - classi prime - multimedia
Html base - classi prime - multimediaHtml base - classi prime - multimedia
Html base - classi prime - multimediaMatteo Ziviani
 
CSS corso base (classi seconde, mod 1)
CSS corso base (classi seconde, mod 1)CSS corso base (classi seconde, mod 1)
CSS corso base (classi seconde, mod 1)Matteo Ziviani
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerMatteo Magni
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)Alessandro Giorgetti
 
The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)Giovanni Buffa
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerMatteo Magni
 
Guida introduttiva al css
Guida introduttiva al cssGuida introduttiva al css
Guida introduttiva al cssEnrico Mainero
 

Ähnlich wie HTML (+ DOM) + CSS (20)

Html
HtmlHtml
Html
 
Presentazione Corso - Parte 1
Presentazione Corso - Parte 1Presentazione Corso - Parte 1
Presentazione Corso - Parte 1
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoria
 
HTML e CSS
HTML e CSSHTML e CSS
HTML e CSS
 
Introduzione al CSS
Introduzione al CSSIntroduzione al CSS
Introduzione al CSS
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5
 
Html base - classi prime - multimedia
Html base - classi prime - multimediaHtml base - classi prime - multimedia
Html base - classi prime - multimedia
 
Lezione HTML
Lezione HTMLLezione HTML
Lezione HTML
 
Introduzione ai css
Introduzione ai cssIntroduzione ai css
Introduzione ai css
 
CSS corso base (classi seconde, mod 1)
CSS corso base (classi seconde, mod 1)CSS corso base (classi seconde, mod 1)
CSS corso base (classi seconde, mod 1)
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesigner
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)The CSS Survival Manual - Giovanni Buffa (2014)
The CSS Survival Manual - Giovanni Buffa (2014)
 
Css1
Css1Css1
Css1
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesigner
 
HTML5
HTML5HTML5
HTML5
 
Fogli di stile CSS
Fogli di stile CSSFogli di stile CSS
Fogli di stile CSS
 
Corso di HTML5 e CSS
Corso di HTML5 e CSSCorso di HTML5 e CSS
Corso di HTML5 e CSS
 
Guida introduttiva al css
Guida introduttiva al cssGuida introduttiva al css
Guida introduttiva al css
 
Web writing 2
Web writing 2Web writing 2
Web writing 2
 

Mehr von Giuseppe Vizzari

Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21Giuseppe Vizzari
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... Giuseppe Vizzari
 
13 - Web feed e aggregatori
13 - Web feed e aggregatori13 - Web feed e aggregatori
13 - Web feed e aggregatoriGiuseppe Vizzari
 
11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)Giuseppe Vizzari
 
10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)Giuseppe Vizzari
 
4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)Giuseppe Vizzari
 
3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)Giuseppe Vizzari
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
1 - Introduzione al corso 19/20
1 - Introduzione al corso 19/201 - Introduzione al corso 19/20
1 - Introduzione al corso 19/20Giuseppe Vizzari
 
Intelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeIntelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeGiuseppe Vizzari
 
Modelli di business nel web
Modelli di business nel webModelli di business nel web
Modelli di business nel webGiuseppe Vizzari
 
Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Giuseppe Vizzari
 
Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Giuseppe Vizzari
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 

Mehr von Giuseppe Vizzari (19)

Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ...
 
13 - Web feed e aggregatori
13 - Web feed e aggregatori13 - Web feed e aggregatori
13 - Web feed e aggregatori
 
12 - Social media (19/20)
12 - Social media (19/20)12 - Social media (19/20)
12 - Social media (19/20)
 
11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)
 
10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)
 
4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)
 
3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
1 - Introduzione al corso 19/20
1 - Introduzione al corso 19/201 - Introduzione al corso 19/20
1 - Introduzione al corso 19/20
 
Intelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeIntelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà Virtuale
 
Wiki e open internet
Wiki e open internetWiki e open internet
Wiki e open internet
 
I social media
I social mediaI social media
I social media
 
Evoluzione del web
Evoluzione del webEvoluzione del web
Evoluzione del web
 
Modelli di business nel web
Modelli di business nel webModelli di business nel web
Modelli di business nel web
 
Ricercare nel web
Ricercare nel webRicercare nel web
Ricercare nel web
 
Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19
 
Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 

Kürzlich hochgeladen

Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptcarlottagalassi
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 

Kürzlich hochgeladen (11)

Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.ppt
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 

HTML (+ DOM) + CSS

  • 2.  Concetti di base: linguaggi markup, un minimo di storia  HTML5 (+ DOM) + CSS3 + JavaScript: il quadro generale  Minima introduzione su HMTL  Minima introduzione su CSS  Minima introduzione su DOM  Considerazioni varie  Cosa c’è di nuovo in HTML5?  Looking forward: JavaScript
  • 3.  Linguaggio di programmazione: utilizzato per comunicare istruzioni a una macchina di calcolo, per definire programmi che controllino il comportamento di un calcolatore  Linguaggio di markup: utilizzato per annotare un documento in modo tale che l'annotazione sia sintatticamente distinguibile dal testo  Esempi di linguaggi di markup:  TeX (e LaTeX)  SGML  HTML, XHTML, XML  Le annotazioni possono avere diverse finalità:  di presentazione (definiscono come visualizzare il testo al quale sono associate)  procedurali (definiscono istruzioni per programmi che elaborino il testo al quale sono associate)  descrittive (etichettano semplicemente parti del testo, disaccoppiando la struttura dalla presentazione del testo stesso)
  • 4. http://visual.ly/html5-past-present-and-future Dal web degli autori di pagine HTML scritte a mano… … al web delle pagine HTML generate da programmi (sistemi di gestione di blog o CMS)
  • 6.  Cos’è l’HTML?  HTML (Hyper Text Markup Language) è un linguaggio di markup per dare struttura ai contenuti (web)  La specifica HTML è definita dal W3C (World Wide Web Consortium)
  • 7. whichElement? Trying to answer that age old question: Should that be a div, a span, or something else? Home Contribute About One of the main challenges we see in building semantic content is picking what tag to use when. Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 8. <h1>whichElement?</h1> <h2>Trying to answer that age old question:</h2> <h2>Should that be a div, a span, or something else?</h2> <ul> <li>Home</li> <li>Contribute</li> <li>About</li> </ul> <p>One of the main challenges we see in building semantic content is picking what tag to use when. This site seeks to help with that. Now, before we get all judgy and preachy let me get a few tenants out there:</p> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 9.  Cosa si intende per CSS?  CSS (Cascading Style Sheets) è un linguaggio per dare uno stile (di presentazione/visuale) ai contenuti (web)  La specifica dei CSS è definita dal W3C
  • 10. <style type="text/css"> h1{ color: red; } h2{ color: blue; font-style: italic; } p{ color: white; background-color: black; } </style> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719 Non è detto che sia un bello stile!<head> <link rel="stylesheet" type="text/css” href="theme.css"> </head>
  • 11. <style type="text/css"> h1{ color: red; font-size: 16px; } h2{ color: blue; font-size: 26px; } ul{ list-style: none; clear: both; display: block; width: 100%; height: 30px; padding: 0; } li{ float: left; padding-right: 20px; } </style> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 12.  Cosa si intende per DOM?  DOM (Document Object Model) è una interfaccia neutrale rispetto al linguaggio di programmazione e alla piattaforma utilizzata per consentire ai programmi l’accesso e la modifica dinamica di contenuto, struttura e stile di un documento (web)  DOM è una API definita dal W3C (e implementata da ogni browser moderno) per l’accesso e la gestione dinamica di documenti XML e HTML
  • 13. <html> <head> <title>Example ...</title> <meta charset="UTF-8"> <meta name="author" content="John Doe"> </head> <body> <h1>Heading 1</h1> <p>This is a paragraph of text with a <a href="/path/page.html">link in it</a>. </p> <ul> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ul> </body> </html>
  • 14.  Ogni nodo può essere caratterizzato da attributi che ne facilitano l’identificazione, la ricerca, la selezione  Un identificatore univoco (attenzione: il DOM non garantisce l’unicità)  Una “classe” che indica l’appartenenza ad un insieme che ci è utile definire  Il browser stesso fornisce funzionalità di ricerca:  getElementById(IdName)  getElementsByClassName(ClassName)  … diverse altre meno interessanti <h1>A One Page FAQ</h1> <div id=”introText"> <p>bla bla bla</p> </div> <h2>I've heard that JavaScript is the long-lost fountain of youth. Is this true?</h2> <div class="answer"> <p>bla bla bla</p> </div> <h2>Can JavaScript really solve all of my problems?</h2> <div class="answer”> <bla bla bla</p> </div>
  • 15. <p id="foo"> This is a paragraph of text with a <a href="/path/to/page.html">link</a> . </p>
  • 16. Se volessimo cambiare lo stile di un singolo paragrafo? O tutti paragrafi di una certa classe? Possiamo specificare un selettore più preciso rispetto al nome del tag, per esempio specificando il nome di una classe o un identificatore di elemento del DOM: p.intro { color: red; } Questo stile sarà applicato solo ai tag di classe intro <p class="intro">
  • 17. I principali selettori sono ● tag name: il semplice nome del tag o p { ... } //affects to all <p> tags ● dot (.): applicabile a un tag, indica una classe o p.highlight { ... } //affects all <p> tags with class="highlight" ● sharp character (#): applicabile a un tag, indica un identificativo o p#intro { ... } //affects to the <p> tag with the id="intro" ● two dots (:): stati comportamentali (ad esempio evento mouseover) o p:hover { ... } //affects to <p> tags with the mouse over ● brackets ([attr='value']): tag con un valore specifico per un attributo 'value' o input[type="text"] {...} // affects to the input tags of the type text
  • 18.  Le media query possono essere viste come particolari selettori capaci di valutare le capacità del device di accesso alla pagina  Non solo schermi, anche stampanti o sistemi text-to- speech!  Si possono controllare ad esempio:  Larghezza e altezza (width, height) del device o della finestra  Orientamento dello schemo (landscape/portrait)  Risoluzione  Se la pagina è più larga di 480 pixel (e si sta visualizzando sullo schermo), applica determinati stili agli elementi con id “leftsidebar” (un menu) e “main” (la colonna centrale) @media screen and (min-width: 480px){ #leftsidebar {width: 200px; float: left;} #main {margin-left:216px;} }
  • 19.
  • 20.
  • 21.  Esistono potenzialmente diversi stylesheet:  L’autore della pagina in genere ne specifica uno (il modo più comunemente inteso) o più d’uno  Il browser ne ha uno, o un vero e proprio CSS o simulato nel loro codice  Il lettore, l’utente del browser, ne può definire uno proprio per customizzare la propria esperienza  Dei conflitti sono quindi possibili (inevitabili), ed è necessario definire un algoritmo per decidere quale stile vada applicato a un elemento  Non entriamo nel dettaglio, ma la priorità tiene conto, in ordine di importanza, dei seguenti fattori associati alle regole:  Importanza (flag specifico !important per un attributo)  Specificità (per esempio, id > class > tag)  Ordine nel sorgente (lo più “recente” vince)
  • 22.  L’impostazione di HTML e CSS separa nettamente il contenuto dalla modalità di visualizzazione  Ricordo che quello di “separation of concerns” è un principio di design altamente desiderabile in contesto informatico  Purtroppo lo stile invece può avere un forte coupling con il contenuto, come risulta dagli esempi precedenti  Il browser non è solamente un banale visualizzatore di pagine scritte in HTML, è un vero e proprio ambiente di sviluppo (in particolare contiene un interprete Javascript e vari strumenti di debug, ma ne parleremo più avanti) che fornisce numerose funzionalità abilitanti
  • 23.  Non ho senso estetico, non ho voglia / tempo di definire un CSS decente (che peraltro è un lavoro non banale) come posso fare?  Esistono numerosi “front-end framework”, dai più sofisticati ai più semplici, naturalmente open source, ad esempio:  Bootstrap (http://getbootstrap.com)  Foundation (http://foundation.zurb.com)  Skeleton (http://getskeleton.com)
  • 24.  Nuovi elementi semantici per la strutturazione delle pagine  article, section, aside, header, footer, etc  Nuovi elementi di input e multimediali  Widget per input search, email, url, number, tel, ma anche range, date…  … purtroppo supporto non uniforme da tutti i browser  audio, video, canvas  Nuove API JavaScript per la manipolazione delle pagine  Offline data, drag and drop, web storage  Chiariamo brevemente cosa si intende per semantica in HTML5 e facciamo qualche esempio di widget per l’input
  • 25.  Parleremo di web semantico nella seconda parte del corso qui intendiamo un utilizzo sensato e comprensibile dei tag HTML  Esempi di usi sensati:  <p> per definire un paragrafo  <ul> per definire una lista di elementi il cui ordine non è importante  <address> per indicare informazioni relative a un indirizzo  <div> e <span> per contenere informazione che si vuole delimitare per qualche motivo (successive manipolazioni)  Esempi di usi non ragionevoli rispetto alla semantica dei tag:  <p> per andare a capo  <blockquote> per gestire l’indantazione  <h1> per ingrandire del testo  L’HTML dovrebbe non contenere informazione di presentazione, riservata ai CSS  Nessun tag <font>, <b>, <i>  No a utilizzo di stili definiti “in linea” Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 26. <div id="header"> <h1>The Awesome Blog of Awesome</h1> <p class="tagline">Awesome is a State of Mind</p> </div> <header> <h1>The Awesome Blog of Awesome</h1> <h2>Awesome is a State of Mind</h2> </header>  HTML 5  Prima... Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719 Analogamente esiste un tag footer
  • 27. <div id="nav"> <ul> <li><a href="">Home</a></li> <li><a href="">Blog</a></li> <li><a href="">About</a></li> <li><a href="">Contact</a></li> </ul> </div> <nav> <ul> <li><a href="">Home</a></li> <li><a href="">Blog</a></li> <li><a href="">About</a></li> <li><a href="">Contact</a></li> </ul> </nav>  Prima  HTML 5 Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 28. Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719 <div class="post”> <div class="postheader"> <h3><a href="">I Scream My Thoughts</a></h3> <p class="date">August 10, 2011</p> </div> <p>You probably haven't heard of them duis</p> </div> <article> <header> <h1><a href="">I Scream My Thoughts</a></h1> <time>August 10, 2011</time> </header> <p>You probably haven't heard of them duis </p> </article>  Prima  HTML5
  • 29. Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719 <div class=”content”> <div class="post”> ... </div> <div class="post”> ... </div> <div class="post”> ... </div> </div> <section> <article> ... </article> <article> ... </article> <article> ... <article> </section>  Prima  HTML5 Nota: questo è un suggerimento, non una prescrizione dura. In particolare, nulla vieta di avere delle sezioni all’interno di un articolo stesso… https://www.w3schools.com/html/h tml5_semantic_elements.asp
  • 30. … </div> </div> </div> <div id=“footer”> </div> </body> … </div> </article> </section> <footer> </footer> </body>  Prima di questi tag, la chiusura della pagina appariva così:  Con i nuovi tag HTML5 è più leggibile: In generale, a parte essere una notazione più concisa e che richiede meno definizioni di classi, le gerarchie di contenuti più leggibili e analizzabili in fase di progettazione, manutenzione e debug
  • 31. • Supporto non uniforme… • I diversi browser tendono a customizzare l’aspetto del box <input type=“search” name=“search” /> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 32. • Fornisce una forma di validazione del dato inserito • Forza la tastiera specifica per l’email su dispositivi iOS <input type=“email” name=“email” /> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 33. • Fornisce una forma di validazione del dato inserito • Nei diversi browser presenta apparenze diverse <input type=“date” name=“dob” /> Esempio da: http://www.slideshare.net/tpryan/introduction-to-html5-11711719
  • 34.  Abbiamo capito cosa sono HTML, CSS e DOM…  … che ci forniscono il necessario per definire contenuti (web), loro stuttura (comprese regole di accesso e modifica), stile grafico  Per approfondimenti specifici ed esempi:  https://www.w3.org/Style/Examples/011/firstcss.en.html  https://www.w3schools.com  https://www.tutorialspoint.com/css/  Manca il modo di definire e governare la dinamicità della pagina, il modo della pagina di cambiare in modo reattivo al comportamento dell’utente o anche proattivo, senza necessariamente dover attendere uno stimolo dall’utente  Javascript è il linguaggio di scripting che svolge questa funzione, ne parleremo più avanti in esercitazioni dedicate  Domande su questa parte sono previste tanto nel compitino quanto negli scritti successivi