Ci sono tre modalità valide, ognuna caratterizzata da alcuni...

38
1

Transcript of Ci sono tre modalità valide, ognuna caratterizzata da alcuni...

Page 1: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

1

Page 2: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

[email protected] 2

�  Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetti: ¢  Fogli collegati (il classico tag <LINK ….> oppure l’attributo

@import all’interno del tag <STYLE>)

�  <style type="text/css" media="screen"> �  @import "stile.css"; �  </style>

�  Fogli incorporati (dentro la head del documento, all’interno del tag <style>…<style>)

¢  Fogli in linea (all’interno dei singoli tag con style=“..”)

Page 3: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

[email protected] 3

�  Non solo i browser accedono al nostro sito. Anche palmari, cellulari e altri dispositivi sono abilitati a farlo..e ognuno di questi ha caratteristiche diverse. Riuscire ad adattare uno stile unico a tutti è praticamente impossibile.

�  La soluzione ideale sta nella creazione di fogli di stile ad hoc.

�  Esempi di sintassi:

�  <link rel="stylesheet" type="text/css" media="print" href="print.css" />

�  < style type="text/css" media="screen">...</style>

Page 4: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

[email protected] 4

¢  all: Il CSS si applica a tutti i dispositivi di visualizzazione. ¢  screen: Monitor dei computer. ¢  print: Il CSS viene applicato in fase di stampa del

documento. ¢  projection.: proiettori. ¢  speech (aural): sintetizzatori vocali ¢  braille. Dispositivi braille. ¢  embossed. Per stampanti braille. ¢  handheld. Palmari e simili. ¢  tv.Web-tv.

Page 5: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

What is Responsive Web Design? RWD stands for Responsive Web Design RWD can deliver web pages in variable sizes RWD is a must for tablets and mobile devices

http://www.w3schools.com/html/html_responsive.asp

Page 6: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

La regola @import (dentro il file .css o il tag style) <style> @import “schermo.css” screen; @import “stampante.css” print; </style>

<link rel="stylesheet" media="print" href="print.css" /> <link rel="stylesheet" media="screen"

href=”schermo.css" />

Page 7: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

La regola @media @media print { body { background: none !important;

} }

Su !important http://coding.smashingmagazine.com/2010/11/02/the-important-css-declaration-how-and-when-to-use-it/

@media permette di raggruppare Le istruzioni a seconda del medium

Page 8: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

Le media query Here is a simple example written in HTML: <link rel="stylesheet" media="screen and (color)" href="example.css" /> Here the same media query written in an @import-rule in CSS: @import url(color.css) screen and (color) (media query più sofisticata) @media screen and (color), projection and (color) { .. css code ..} A media query consists of a media type and zero or more expressions that check for the conditions of particular media features à quando le condizioni sono vere per il medium indicato allora il foglio è applicato al documento http://www.w3.org/TR/css3-mediaqueries/

This example expresses that a certain style sheet (example.css) applies to devices of a certain media type (‘screen’) with certain feature (it must be a color screen).

Page 9: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

Media features // solo se la finestra del browser è larga 800pz @media only screen and (width: 800px){ //Regole css } // solo ai media con larghezza di pagina uguale o superiore a @media all and (min-width: 450px){ //Regole css } http://www.html.it/pag/19466/css-media-queries-le-basi/ http://www.html.it/pag/19467/css-media-queries-caratteristiche-dei-media/

Width: verifica la larghezza della viewport ossia della finestra del browser

Page 10: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

Un breakpoint è un punto, su una linea ideale che parte da 0, in cui si verifica una qualche modifica (tramite i CSS) al layout della pagina. I breakpoint si definiscono con valori numerici e unità di misura nel contesto delle media queries inserite nei nostri fogli di stili CSS.

http://www.html.it/pag/32823/definire-i-breakpoint-con-le-media-queries/

http://www.html.it/pag/32823/definire-i-breakpoint-con-le-media-queries/

Page 11: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

320px: iPhone con orientamento portrait 480px: iPhone con orientamento landscape 768px: iPad con orientamento portrait 1024px: iPad con orientamento landscape (ma anche netbook, visto che in genere questi dispositivi hanno una risoluzione orizzontale di 1024px)

Page 12: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

body { background: red; } @media screen and (min-width: 480px) { body { background: yellow; } } @media screen and (min-width: 768px) { body { background: green; } } @media screen and (min-width: 1024px) { body { background: blue; } } @media screen and (min-width: 1200px) { body { background: gray; } }

Page 13: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

<style type="text/css"> /* default styles here for older browsers. I tend to go for a 600px - 960px width max but using percentages */ @media only screen and (min-width:960px){ /* styles for browsers larger than 960px; */ } @media only screen and (min-width:1440px){ /* styles for browsers larger than 1440px; */ } @media only screen and (min-width:2000px){ /* for sumo sized (mac) screens */ } @media only screen and (max-device-width:480px){ /* styles for mobile browsers smaller than 480px; (iPhone) */ } @media only screen and (device-width:768px){ /* default iPad screens */ } /* different techniques for iPad screening */ @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) { /* For portrait layouts only */ } @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) { /* For landscape layouts only */ } </style>

Page 14: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

14

Page 15: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

�  Il responsive web design è un approccio alla progettazione e allo sviluppo che punta ad ottenere siti in grado di adattarsi automaticamente alle caratteristiche del dispositivo, in base a fattori come le dimensioni dello schermo, la piattaforma o l’orientamento del dispositivo stesso.

¡  Un sito responsivo dovrebbe anticipare automaticamente le preferenze e i comportamenti dell’utente.

¡  Un riferimento “storico” tra i siti responsivi è quello del Boston Globe: http://www.bostonglobe.com/?refresh=true

15

Page 16: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Le media queries rappresentano un meccanismo per analizzare il dispositivo utilizzato dall’utente e associare diverse regole CSS a dispositivi (media…) specifici.

� Una media query consiste in una parola chiave che identifica un tipo di medium (es. screen), eventualmente seguita da una o più espressioni di verifica di specifiche caratteristiche (media features).

16

Page 17: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� E’ possibile specificare una media query sia in un documento HTML, sia in un documento CSS.

� Esempio HTML: <link rel=“stylesheet” media=“only screen and (min-

device-width: 800px)” href=“pc.css” />

� Esempio CSS: @media only screen and (min-device-width: 800px) {

regole }

17

Page 18: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

18

Tipo di medium

� E’ possibile specificare una media query sia in un documento HTML, sia in un documento CSS.

� Esempio HTML: <link rel=“stylesheet” media=“only screen and (min-

device-width: 800px)” href=“pc.css” />

� Esempio CSS: @media only screen and (min-device-width: 800px) {

regole } I tipi di media universalmente supportati sono all, screen e

print.

Page 19: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

19

Espressione di verifica delle media features

� E’ possibile specificare una media query sia in un documento HTML, sia in un documento CSS.

� Esempio HTML: <link rel=“stylesheet” media=“only screen and (min-

device-width: 800px)” href=“pc.css” />

� Esempio CSS: @media only screen and (min-device-width: 800px) {

regole }

Page 20: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

�  Possono iniziare con la parola chiave “not”: ¡  Il foglio di stile è applicato se la condizione non è

soddisfatta.

� Possono iniziare con la parola chiave “only”: ¡  Il foglio di stile non è visibile ai browser che non

supportano le media query.

� Le espressioni: ¡  Sono racchiuse tra parentesi tonde; ¡  Possono contenere:

¢  Una media feature; ¢  Una media feature e un valore con cui confrontarla.

20

Page 21: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Le media feature corrispondono ad alcune proprietà del dispositivo utilizzato dall’utente/del client: ¡  width (min-width; max-width): verifica la larghezza

della finestera del browser; ¡  height (min-height; max-height): verifica l’altezza

della finestera del browser; ¡  device-width (min-device-width; max-device-width):

verifica la larghezza del dispositivo; ¡  device-height (min-device-height; max-device-

height): verifica l’altezza del dispositivo; ¡  orientation: verifica la “posizione” del dispositivo, in

vericale (“orientation: portrait”) o in orizzontale (“orientation: landscape”).

21

Page 22: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Conoscendo le dimensioni minime e massime della finestra del browser per diverse classi di device, si può definire un layout personalizzato.

22

esempio di Gianluca Troiani [https://github.com/giatro/EsempiCSSGuidaCompletaTerzaEd]

Page 23: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

23

Smartphone, tablet: Icon made by Freepik (http://www.freepik.com) PC: Icon made by Situ Herrera from www.flaticon.com

max-width: 480px

min-width: 481px max-width: 767px min-width: 768px max-width: 1024px orientation:portrait

min-width: 768px max-width: 1024px orientation: landscape

min-width: 1025

Page 24: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

�  Il viewport è la parte visibile di una pagina web e dipende dalle dimensioni dello schermo di un dispositivo.

�  iPhone e iPad tendono ad ignorare le dimensioni effettive dello schermo: ¡  Le pagine sono zoomate in modo tale da essere

visualizzate completamente; ¡  Le media queries non funzionano!

� Per forzare i dispositivi a rispettare l’effettiva dimensione del viewport si deve aggiungere nell’<head> l’elemento: <meta name="viewport" content="width=device-

width, initial-scale=1.0">

24

Page 25: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

25

nav { float: left; width: 20%; background-color: #efefef;

} article {

float: right; width: 79%; background-color: white;

}

Page 26: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

26

nav { float: left; width: 20%; background-color: #efefef;

} article {

float: right; width: 79%; background-color: white;

}

Page 27: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

27

nav { float: none; width: 100%; background-color: #efefef; text-align: center;

} nav ul li {

display: inline; } nav ul li:before {content: " - ";} nav ul li:first-child:before {content: " ";} article {

float: none; width: 100%;

}

Page 28: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

28

nav { float: none; width: 100%; background-color: #efefef; text-align: center;

} nav ul li {

display: inline; } nav ul li:before {content: " - ";} nav ul li:first-child:before {content: " ";} article {

float: none; width: 100%;

}

Page 29: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

29

aside { float: right; background-color: pink; width: 40%; margin-top: 1em; margin-left: 1em; padding: 5px;

}

Page 30: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

30

aside { float: right; background-color: pink; width: 40%; margin-top: 1em; margin-left: 1em; padding: 5px;

}

Page 31: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

31

aside { float: none; background-color: pink; width: auto; margin: 0; padding: 5px;

}

Page 32: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

32

aside { float: none; background-color: pink; width: auto; margin: 0; padding: 5px;

}

Page 33: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Riprodurre il layout responsivo di Gianluca Troiani a partire dalla base fornita.

� Abbiamo: ¡  acme.html: è il sorgente HTML. Va bene per tutti

i contesti (desktop, tablet, smartphone) ed è già completo.

¡  common.css: è il file CSS che contiene le regole “comuni” che verranno applicate da tutti i dispositivi (a meno di disposizioni più specifiche). E’ già completo e permette di ottenere un layout a tre colonne.

¡  sfondo-3-colonne.gif: è l’immagine utilizzata per lo sfondo del layout a tre colonne.

33

Page 34: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Cosa ci manca: ¡  tablet.css e smartphone.css: sono i file CSS

contenenti le regole specifiche per la visualizzazione su tablet (layout a 2 colonne) e su smartphone (layout monolitico). In ciascuno di essi bisogna: ¢  sovrascrivere le dichiarazioni contenute in common.css

che non si adattano alla classe di dispositivi corrente. ¢  aggiungere eventuali regole specifiche solo per la

classe di dispositivi corrente.

34

Page 35: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

35

#pie-di-pagina

#corpo

#intro

#menu

#contenuti

#colonna-1 #colonna-2

h1

Page 36: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

� Nel layout a tre colonne (common.css): ¡  Quasi tutti gli elementi strutturali (<h1>, ‘corpo’,

‘pie-di-pagina’, ‘intro’, ‘menu’, ‘contenuti’) hanno una dimensione fissa.

¡  Le due colonne (‘colonna-1’, ‘colonna-2’) sono grandi il 50% dell’elemento contenitore (‘contenuti’).

¡  Gli elementi ‘intro’ e ‘contenuti’ fluttuano a destra; l’elemento ‘menu’ fluttua a sinistra.

36

Page 37: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

�  tablet.css

¡  Gli elementi strutturali che avevano una dimensione fissa possono occupare tutto lo spazio che rimane libero da margin, padding, border (width: auto).

¡  Gli elementi ‘menu’, ‘intro’ e ‘contenuti’ non sono più fluttuanti (float: none).

¡  Il ‘corpo’ ha un’immagine di sfondo diversa (con due sole colonne).

¡  Il ‘menu’ ha lo sfondo rosso (#e7b9bb) e un bordo inferiore bianco di 10px.

37

Page 38: Ci sono tre modalità valide, ognuna caratterizzata da alcuni aspetticgena/master/2019/html-css/17... · 2018. 3. 9. · cgena@di.unito.it 3 Non solo i browser accedono al nostro

�  smartphone.css

¡  Si ripetono tutte le regole impostate per ‘tablet.css’.

¡  In più: ¢  Il ‘corpo’ non ha più alcuna immagine

di sfondo. ¢  ‘colonna-1’ e ‘colonna-2’ occupano

tutto lo spazio a loro disposizione e non devono più fluttuare.

¢  ‘colonna-1’ ha lo sfondo verde (#d9eca4) e un bordo inferiore bianco di 10px.

¢  ‘colonna-1’ ha lo sfondo giallo (#fff9af) e un bordo inferiore bianco di 10px.

¢  Gli elementi di classe ‘inner’ all’interno delle colonne occupano l’intera colonna (hanno margine pari a 0).

38