HTML5 e Css3 [5]
Matteo Magni
Inizialmente avevamo questo
One monitor One browser




Sito ottimizzato per risoluzione 800x600, Browser:
    Microsoft Internet Explorer, per problemi di
      visualizzazione contattare il webmaster
Browser War
Continuiamo con il Sito ottimizzato
            per...?!?
Idea!!!!

Piu' CSS
<!­­[if lte IE 6]>
<link href="ie6.css" rel="stylesheet" 
type="text/css" />
<![endif]­­> 
<!­­[if IE 7]>
<link href="ie7.css" rel="stylesheet" 
type="text/css" />
<![endif]­­>
<!­­[if IE 8]>
<link href="ie8.css" rel="stylesheet" 
type="text/css" />
<![endif]­­>
<!­­[if gt IE 8]>
<link href="ie9.css" rel="stylesheet" 
type="text/css" />
<!­­<![endif]­­>
WebMaster?
Multiple Browser & Multiple Device
Idea!!!!

Piu' Layout
if ((screen.width<=1024) && 
(screen.height<=768)){
  //use css
} else if ((screen.width>=1024) && 
(screen.height>=768)){
  //use another css
} else if...
....
} else {
  //use css...
}
WebMaster?
E poi avevamo detto di usare solo css per la
 presentazione e non di usare javascript?
Ma non Possiamo usare i Css Media Type?
Css 2.1 ha 10 media
●   all: il CSS si applica a    ●   braille: supporti basati sull’uso
    tutti i dispositivi di          del braille;
    visualizzazione;            ●   embossed: stampanti braille;
●   screen: schermo di          ●   handheld: dispositivi mobili
    computer;                       con schermo piccolo e in
                                    genere dotati di browser con
●   print: pagina stampata;         limitate capacità grafiche;
●   projection: presentazioni   ●   tty: dispositivi a carattere fisso
                                    come i terminali;
    e proiezioni;
                                ●   tv: visualizzazione su schermi
●   speech: dispositivi a           televisivi.
    sintesi vocale;
<link rel="stylesheet" href="a.css" 
 type="text/css" media=”screen" />


<link rel="stylesheet" href="a.css" 
 type="text/css" media=”print" />
Nuova sintassi
<link rel="stylesheet" href="a.css" 
           type="text/css" 
media=”screen and(min­width:500px)" />
Media Queries sono espressioni logiche che
  ritornano "true" o "false" a seconda di come
                vengono valutate.
Se sono vere, gli stili vengono applicati, se false,
                 vengono ignorati
One HTML & One Css
Il termine Responsive Web Design (RWD) viene
 utilizzato per indicare una particolare tecnica di
   Web design per la realizzazione di siti web in
modo che le pagine adattino automaticamente il
layout per fornire una visualizzazione ottimale in
      funzione dell'ambiente nei quali vengono
    visualizzati riducendo al minimo all'utente la
necessità di ridimensionamento e scorrimento, in
      particolare quello orizzontale. (wikipedia)
Media Query syntax:


rel="stylesheet"   href="desktop.css"  
  media="[not | only] screen [and]   
            (expression)" 

  Le keywords “not”, “only”, and “and” possono
   essere usate per filtrare i risultati, mentre le
    espressioni possono essere utilizzate per
 verificare la presenza di specifiche funzionalità
                    multimediali
 Media Query link:
<link rel="stylesheet" media="screen 
and (color)" href="colore.css" />

          Media Query inline:
@media screen and (color) {
   /* qui vanno le regole CSS */
}
          Media Query import:
@import url(colore.css) screen and 
(color);
Width


@media screen and (width: 500px) {
/* CSS rules*/
}

@media screen and (min­width: 320px) 
and (max­width: 1024px) {
/* CSS rules 320 < width < 1024*/
}
Height


@media screen and (height: 500px) {
/* CSS rules*/
}

@media screen and (min­height: 400px) 
and (max­height: 800px) {
/* CSS rules  400 < height < 800*/
}
Device width & height


<link rel="stylesheet" media="all and 
(max­device­width: 480px)" 
href="mobile.css" type="text/css" />

<link rel="stylesheet" media="all and 
(max­device­height: 500px)" 
href="mobile.css" type="text/css" />
orientation
//indica se il dispositivo di output è in modalità landscape
(la larghezza è maggiore dell’altezza) oppure portrait
(l’altezza è maggiore della larghezza)
<link rel="stylesheet" media="all and 
(orientation:portrait)" 
href="portrait.css"> 


<link rel="stylesheet" media="all and 
(orientation:landscape)" 
href="landscape.css">
aspect-ratio
//rapporto tra la larghezza (width) e l’altezza
(height) dell’area di visualizzazione
@media screen and (aspect­ratio: 4/3) 
{
/* CSS rules*/
}
device-aspect-ratio
//rapporto tra la larghezza (width) e l’altezza
(height) dell’area di visualizzazione
@media screen and (device­aspect­
ratio: 16/9) {
/* CSS rules*/
}
Color
//Indica il numero di bit per ciascuna componente
colore sul dispositivo di output. Se 0 non supporta
il colore
@media all and (color) {
/* CSS rules*/
}
color-index
//numero di colori presenti nella tavolozza
<link rel="stylesheet" media="all and 
(min­color­index: 256)" 
href="colore.css" />
resolution
//risoluzione dispositivo output in dpi (punti per
pollice), può avere min e max
@media print and (min­resolution: 
300dpi) {
/* CSS rules*/
}
●   Monochrome
    ●   numero di bit per pixel su un dispositivo
        monocromatico (a scala di grigi).
●   Scan
    ●   progressive oppure interlace. Relativa ai media TV
●   Grid
    ●   Se dispositivo è a bitmap o griglia
IE
Respond.js
from the Filament Group
https://github.com/scottjehl/Respond
(gzipped version is 1kb)
css3-mediaqueries-js
by Wouter van der Graaf
http://code.google.com/p/css3-mediaqueries-js/
(15kb uncompressed)
Boilerplate
/*main.css*/
/* 
========================================================================
==
   Media Queries
========================================================================
== */
@media only screen and (min­width: 480px) {
/* ====================
    INTERMEDIATE: Menu
   ==================== */
    nav a {
        float: left;
.....
Sosacroniro
  Responsive?
Domande?

             Slide:
http://www.slideshare.net/ilbonzo
             Code:
https://github.com/ilbonzo/Cypher
              mail:
       matteo@magni.me

HTML5 e Css3 - 5 | WebMaster & WebDesigner