Basi di Dati. Programmazione e gestione di sistemi telematici - Coordinatore: Prof. Paolo Nesi Prof. Paolo Nesi - DISIT Lab

Pagina creata da Filippo Di Martino
 
CONTINUA A LEGGERE
Basi di Dati. Programmazione e gestione di sistemi telematici - Coordinatore: Prof. Paolo Nesi Prof. Paolo Nesi - DISIT Lab
Basi di Dati.
           Programmazione e
           gestione di sistemi
           telematici
Coordinatore: Prof. Paolo Nesi
Docenti:      Prof. Paolo Nesi
              Dr.sa Michela Paolucci
              Dr. Emanuele Bellini
Basi di Dati. Programmazione e gestione di sistemi telematici - Coordinatore: Prof. Paolo Nesi Prof. Paolo Nesi - DISIT Lab
Introduzione
   CSS Cascading Style Sheets (fogli di stile)
   Le regole per comporre i CSS sono contenute in
    un insieme di direttive (o Recommendations)
    emanate dal 1996 dal W3C
   L'introduzione dei fogli di stile si è resa
    necessaria per separare i contenuti dalla
    formattazione e permettere una
    programmazione più chiara e facile da utilizzare,
    sia per gli autori delle pagine HTML che per gli
    utenti
Basi di Dati. Programmazione e gestione di sistemi telematici - Coordinatore: Prof. Paolo Nesi Prof. Paolo Nesi - DISIT Lab
Prima dei CSS (1)
   Come sappiamo una pagina web è formata da contenuti
    e layout
   Il linguaggio HTML serve per gestire i contenuti,
    attraverso l’uso di tag. Ogni tag specifica un diverso
    ruolo dei contenuti
   I browser interpretano il codice HTML e mostrano
    all'utente formattazioni predefinite per ogni tag
   Ogni browser ha un proprio metodo di interpretazione
    dei tag. Per questo si dice che la formattazione html è
    completamente sotto il controllo dell'utente, che può
    modificarla nelle Impostazioni del suo browser
Basi di Dati. Programmazione e gestione di sistemi telematici - Coordinatore: Prof. Paolo Nesi Prof. Paolo Nesi - DISIT Lab
Prima dei CSS (2)
 Allo scopo di consentire agli autori di
  definire l'aspetto grafico delle pagine
  create, dal '93 Internet Explorer e
  Netscape Navigator, presentarono tag
  proprietari, ovvero non compatibili con gli
  altri browser e non aderenti agli standard.
 Come ad esempio è successo con il tag
Prima dei CSS (3)
   Prima dell’uso dei CSS erano presenti i seguenti
    problemi:
       lunghezza dei tag: una pagina che non usa i CSS è più pesante
        (in termini di bit). (Le regole CSS possono essere inserite in un
        file esterno che rimane memorizzato nella cache del browser,
        riducendo ulteriormente la quantità di dati che i server devono
        trasmettere)
       mancanza di logica in HTML: un codice che non è aderente agli
        standard comporta lavoro addizionale per i browser (che devono
        interpretare, se possibile, direttive arbitrarie)
       mancanza di compatibilità con palmari e smartphone i cui
        schermi hanno una risoluzione minima ed una forma ben diversa
        dal rapporto 4:3 dei monitor dei pc
Prima dei CSS (4)
   Per risolvere la situazione il W3C ha emanato le
    specifiche CSS-1, per separare il contenuto
    dalla sua formattazione: Il contenuto definito dal
    codice html e la relativa formattazione realizzata
    attraverso i css.
Cosa sono I CSS e a che servono
   La definizione più conosciuta e diffusa dei fogli di stile è: sono la
    separazione tra contenuto e presentazione. Il contenuto è nella
    pagina html, mentre la presentazione è riservata ai fogli di stile. Ma
    c'è una terza variabile che non compare in questa definizione, una
    variabile di cui molti appassionati ed esperti di webdesign devono
    tenere conto: la struttura. La struttura è inseparabile dal contenuto,
    ed è l'unico modo per consentirne la presentazione. Per esempio, si
    immagini una guida di programmi tv in cui le pagine non siano divise
    per giorni e le programmazioni non suddivide per canale e orario.
    Una guida ai programmi televisivi con le stesse informazioni testuali,
    ma presentate in ordine sparso e senza forma. La potreste
    consultare?
Vantaggi CSS in generale(1)
   Erano un'efficace soluzione al primo problema
    (escludendo la questione del tag ) perché
    riducevano notevolmente le dimensioni della pagine.
   Risolvevano il secondo in modo parziale perché
    consentivano al codice (X)HTML di ritornare in gran
    parte semplice ed essenziale, ma presentavano
    qualche mancanza che costringeva a ricorrere ai tag
    HTML.
   Non prendevano però in considerazione il terzo, dato
    che nel 1996 i PDA (i palmari) erano scarsamente
    diffusi.
Svantaggi dei CSS

    I browser più datati hanno una non corretta interpretazione dei CSS,
    ciò richiede un minimo d'accortezza al momento delle progettazione.
    Punto.
    Concludendo
    Progettare con i CSS, realizzando pagine standard (magari in
    XHTML) significa progettare per il futuro, senza però trascurare il
    passato: una pagina (X)HTML standard + CSS standard è
    accessibile con tutti i dispositivi per la navigazione nel web. Certo, i
    browser più datati richiederanno CSS specifici, magari più semplici,
    ma ottenere la stessa grafica su tutti i dispositivi/browser non è
    possibile e neppure utile. Un sito indipendente dal browser è quello
    in grado di presentare correttamente i contenuti su tutti i browser.
Modi per implementare i CSS
   Esistono 3 metodi per implementare i fogli di
    stile CSS in una pagina web, ovvero utilizzando
    stili:
     In linea (inline)
     incorporati (embedded)
     esterni (external)
   Il metodo più usato è il primo perchè permette di
    gestire globalmente il layout del sito utilizzando
    un file a se stante. Il contenuto è separato in
    modo netto dalla presentazione e questo
    consente una maggiore flessibilità
Metodo inline
   Si usa in punti molto specifici della: non si
    modifica la visualizzazione dell’intera pagina ma
    solo di una parte di essa.
   Si fa uso dell’attributo style con la seguente
    sintassi:
     Titolo
Metodo incorporato
   È utile quando si vuole modificare una sola
    pagina web
   All’interno del tag  si inseriscono le
    regole di stile volute che devono, a loro volta,
    essere contenute all’interno di un altro tag
    :
    
      Regole
Metodo incorporato: esempio

 Prima Pagina
 
 body {
      padding: 2em;
      color: purple;
      background-color: #d8da3d }
 h1 {
      font-family: Helvetica, Geneva, Arial,
      SunSans-Regular, sans-serif}
 h2 {         color: red}
 
Prima pagina definita con i CSS interni
Paragrafo in carattere rosso
  Testo visualizzato
Metodo incorporato:
visualizzazione esempio
Metodo esterno
   Si fa riferimento ad un file (esterno) diverso da quello
    contenente il codice html:
       
   Metodo di inclusione di più CSS esterni tramite @import:
       
        @import "/percorso_della_cartella/stile1.css";
        @import "/percorso_della_cartella/stile2.css";
        @import
        url("http://www.miosito.it/percorso_della_cartella/stile2.css");
Metodo esterno: visualizzazione
esempio
   Sono necessari due file:
        Il file nomefile.html
           
             My first styled page
             
              Prima pagina definita con i CSS interni
              Paragrafo in carattere rosso
              Testo visualizzato
              
       Il file stile.css:
      body {padding: 2em;
        color: purple;
        background-color: #d8da3d }
      h1 { font-family: Helvetica, Geneva, Arial,
          SunSans-Regular, sans-serif}
      h2 {color: red}
Metodo esterno:
Classificazione degli elementi
 Una pagina HTML, non è altro che un
  insieme di rettangoli (box) disposti sullo
  schermo di un monitor (paragrafi, titoli,
  tabelle, immagini, …)
 Non tutti i box sono uguali:alcuni
  contengono altri box, altri sono invece
  contenuti all'interno dei primi
Attributo media di  (1)
   all: il CSS si applica a tutti i dispositivi di
   visualizzazione
   screen: normali browser web
   print: stampa
   projection: presentazioni e proiezioni a tutto schermo
   aural: dispositivi come browser a sintesi vocale
   braille: supporti basati sull'uso del braille
   tv: Web-tv
   ...
Regole (1)
 Un CSS o foglio di stile è un insieme di
  regole
 Una regola è costituita da un selettore e
  da un blocco della dichiarazione. Ogni
  blocco contiene a sua volta proprietà e
  valori:
Regole (2)
 Il selettore serve a definire la parte del
  documento cui verrà applicata la regola
 Il blocco delle dichiarazioni è delimitato
  rispetto al selettore e alle altre regole da
  due parentesi graffe. Al suo interno si
  possono trovare più dichiarazioni
  (proprietà: valore1) separate dal carattere
  ';'
Regole (3)
   La proprietà definisce un aspetto dell'elemento
    da modificare (margini, colore di sfondo, etc)
    secondo il valore espresso.
   Per ogni dichiarazione non è possibile indicare
    più di una proprietà, mentre è spesso possibile
    specificare più valori:
      body {color background: black;} ERRATA
      p {font: 12px Verdana, arial;} CORRETTA
Commenti
   Per inserire parti di commento in un CSS:
•   /* come segno di apertura
•   * */ come segno di chiusura

body {
padding: 2em;
color: purple;
*/* Questo è un commento **/
background-color: #d8da3d }
I Selettori
 I selettori sono le parti della pagina web a
  cui vengono applicate le regole descritte
  nel file.css
 Ad esempio 'type selector' fa riferimento
  agli elementi che descrivono una pagina
  html (h1, p,...)
     h1   {color: #000000;}
Raggruppamento di selettori
   Quando due o più selettori sono definiti dalla
    stessa regola, conviene raggruppare
   Senza raggruppamento:
     VXCVh1    {background: white;}
       h2 {background: white;}
       h3 {background: white;}
   Con il raggruppamento:
       h1, h2, h3 {background: white;}
Selettore universale
   Serve a selezionare tutti gli elementi di
    una pagina web:
       * { color: black; }
Selettore del discendente
(descendant selector)
   Serve a selezionare tutti gli elementi che
    nella struttura ad albero di una pagina web
    sono discendenti di un altro elemento
    specificato nella regola
       div p {color: black;}
   Questa regola è relativa a tutti i paragrafi
    (p) discendenti del blocco div
Selettore del figlio
(child selector)
 Seleziona un elemento che è figlio diretto
  di un altro
 body > p {color: black;}
     Questa   regola è relativa a tutti i paragrafi figli
      diretti dell'elemento body
   NOTA: questo selettore non è supportato
    da Internet Explorer
Selettore elemento adiacente
(adjacent-sibling selector)
 Seleziona gli elementi che nel codice della pagina web
  sono immediatamente vicini (adiacenti) ad un altro
 Se il file html contiene:
Titolo
Primo paragrafo
Secondo paragrafo
 La regola: h1 + p {color: red;}
può essere applicata solo al primo paragrafo
 NOTA: non è supportato da Internet Explorer
Selettore dell'attributo
(attribute selector)
   Seleziona gli elementi in base ai loro
    attributi e/o al valore di tali attributi.
    Esistono le seguenti modalità:
     attributo semplice
     attributo con valore
     attributo il cui valore contiene una stringa
     attributo il cui valore inizia con una stringa
Selettore dell'attributo: attributo
semplice
   Questa regola seleziona tutti gli elementi che,
    nel file.html, hanno un determinato attributo
   Esempio:
         p [ id ] {background: red;}
    applica uno sfondo rosso a tutti gli elementi 'p' della
    pagina web (pagina.html) per cui sia stato impostato un
    attributo id
    ( contenuto )
Selettore dell'attributo: attributo
con valore
   Questa regola seleziona tutti gli elementi che,
    nel file.html, hanno come valore dell'attributo la
    stringa definita nella regola
   Esempio:
    p   [ id = "text" ] { backgorund: red; }
    applica uno sfondo rosso a tutti gli elementi 'p' che nella
       pagina web (file.html) hanno come valore dell'attributo
    id "text“
    ( contenuto )
Selettore dell'attributo: attributo il
cui valore inizia con una stringa
   Questa regola seleziona tutti gli elementi il cui
    valore dell'attributo inizia con la stringa definita
    nella regola
    Esempio:
         img [ alt t= "colosseo" ] {margin: 10px;}
    applica un margine di 10px a tutte le immagini in cui
    l'attributo alt contiene la stringa "colosseo"
    ( )
Selettore dell'attributo: attributo il
cui valore contiene una stringa
   Questa regola seleziona tutti gli elementi il cui
    valore dell'attributo contiene la stringa definita
    nella regola
   Esempio:
       img [ alt |= "foto" ] {margin: 10px;}
    applica un margine di 10px a tutte le immagini in cui
    l'attributo 'alt' inizia con la stringa "foto"
    ( )
Selettori Id e Class (1)
   Sono due selettori che possono essere applicati
    a tutti gli elementi del file.html
   Selettore class:
     si assegna ad un elemento del file.html un attributo
    class: ....
     si definisce nel file.css la class testorosso nel modo
    seguente: ( .nome_classe {blocco dichiarazione} )
    .testorosso {
       font: 12px Arial, Helvetica, sans-serif;
       color: #FF0000;}
Selettori Id e Class (2)

   Un id è utilizzato nel file.html per fare riferimento ad uno
    ed un solo elemento della pagina web. Per questo
    motivo la differenza tra id e class risulta:
      un id dichiarato nel file.css trasforma solo uno
    specifico elemento del file.html
     una classe, al contrario, può essere assegnata
    a più elementi, anche dello stesso tipo
   NOTA: Se uno stile va applicato un solo elemento, si usa
    l'id altrimenti se si prevede di usarlo su più elementi si
    usa class
Unità di misura più usate
   pt (points - punti): unità di misura tipografica
    destinata essenzialmente a definire la
    dimensione dei font
   em (em-height): 1 em equivale all'altezza media
    di un carattere per un dato font. E' un unità di
    misura relativa
   px (pixels): unità di misura ideale su monitor. E‘
    quella più usata e facile da comprendere
Valori e unità di misura
  I valori di una proprietà non vanno mai messi tra
virgolette (eccezione=stringhe di testo e nomi dei
   font composti da più di una parola. Es: “Times
New Roman”)
 Quando si usano valori numerici con unità di
misura, non bisogna lasciare spazio tra numero e
sigla dell'unità (Corretto: 15px - Sbagliato:15 px)
Altre unità per le dimensioni (1)
 Percentuale: è relativo ad un altro valore, in genere
  quello espresso per l'elemento parente (60%)
 Stringhe: alcune proprietà dei CSS possono avere
come valore una stringa di testo da inserire come
  contenuto aggiunto nel documento
 Valori URI: sono URL che puntano a documentiesterni.
  Possono essere assoluti o relativi (il path fa riferimento
  alla posizione del file.css)
Ereditarietà (1)
   Le impostazioni stilistiche applicate ad un
    elemento ricadono anche sui suoi
    discendenti. Almeno fino a quando, per un
    elemento discendente, non si imposti
    esplicitamente un valore diverso per quella
    proprietà
Ereditarietà (2)
   Se nel css si scrive la regola:
     body   {color: red;}
 Tutti gli altri elementi suoi discendenti (h1,h2,p)
erediteranno questa impostazione
 MA se nel file.css si definisce anche anche:
     h1  {color: black;}
    l'ereditarietà viene
    spezzata e il testo del
    paragrafo h1 sarà nero
Ereditarietà (3)
 Non tutte le proprietà sono ereditate.
  Ereditare un bordo non ha senso.
 Esempio: se si imposta un bordo per un
  paragrafo sarebbe assurdo che un
  elemento  o un testo in grassetto
  venissero circondati dallo stesso bordo
Peso delle regole
   Ogni regola ha più o meno importanza rispetto alle altre
   Un primo criterio di importanza è dato dall'origine del
    foglio di stile. Quando si visualizza una pagina web, il
    browser la interpreta in base a (in ordine di importanza):
        file.css dell'autore
        file.css dell'utente
       file.css predefinito del browser
    NOTA: tutti i software di navigazione consentono una
   gestione di questo aspetto
Peso delle regole (2)
   Criterio dell'ordine:
     stili in linea
    Titolo
     stili incorporati (nel file.html)
    h1{color:red;}
     stili collegati (file.css)
    h1{color: red;}
Cascade
   Un browser esegue le seguenti azioni per
    visualizzare una pagina web:
     controlla il target stabilito con l'attributo media
      (adesempio scarta tutti gli stili e le regole riferiti alla
      stampa o ad altri supporti)
     ordinare le regole in base all'origine (autore-> utente->
    browser)
     calcola la specificità dei selettori (albero) e in caso di
    conflitto usa il criterio dell'ordine (stili in linea-> Stili
    incorporati → stili collegati o esterni)
Gestione del testo
 Prima dei CSS si usava il tag , si creavano
così pagine web di difficile gestione
 Con i CSS possono essere gestite varie proprietà
del testo:
       Il tipo di font
       La dimensione del font
       La consistenza del font
       L'interlinea tra i paragrafi
       L'allineamento del testo e la sua decorazione
Gestione del testo: font family
   La proprietà font-family impostare il tipo di carattere. Si
    applica a tutti gli elementi ed è ereditata. Il W3C ha
    creato un meccanismo che consente all'autore di
    impostare nei CSS non un font singolo e unico, ma un
    elenco di caratteri alternativi:
       p {font-family: arial, Verdana, sans-serif;}
   Quando la pagina viene caricata, il browser tenta di
    usare il primo font della lista. Se questo non è disponibile
    usa il secondo e così via
      selettore {font-family: ,...,;}
Gestione del testo: font-size (1)
 Definisce le dimensioni del testo. E' applicabile a
tutti gli elementi ed è ereditata
     Sintassi:   selettore { font-size: ; }
   I valori del testo possono essere espressi in:
     dimensione     assoluta: è definita dall'unità di
    misura usata
     dimensione relativa: viene calcolata in base
    alla dimensione del testo dell'elemento parente
Gestione del testo: font-size (2)
   Sono valori assoluti:
        xx-small, x-small, small, medium, large, x-large,
      xxlarge, pixel (px), centimetri (cm), millimetri (mm),
      punti (pt), picas (pc), pollici (in), x-height(ex)
     p {font-size: 12px;}

   Sono valori relativi:
     smaller, larger, em (em-height), % (in percentuale)
     h2 {font-size: 1.2em;}
Gestione del testo: font-weight
   Serve a definire la consistenza o "peso" visivo del testo.
    Si applica a tutti gli elementi ed è ereditata.
       selettore {font-weight: ;}
   Valori:
       numerici: 100-200-300-400-500-600-700-800-900
       ordinati in senso crescente (dal più leggero al più
       pesante)
       normal: valore di default (equivale a 400)
       bold: grassetto (equivale a 700)
       Bolder: misura relativa (più pesante del parente)
       lighter: misura relativa (più leggero del parente)
Gestione del testo: line-height
 Serve a definire l'altezza di una riga di
  testo all'interno di un elemento blocco. Ma
  l'effetto ottenuto è quello di impostare uno
  spazio tra le righe. La proprietà si applica
  a tutti gli elementi ed è ereditata
 Sintassi:
       selettore {line-height: ;}
Gestione del testo: line-height
   Valori:
     normal
      valore numerico (1.2, 1.3, 1.5): l'altezza della riga
      sarà
    uguale alla dimensione del font moltiplicata per questo
      valore
     valore numerico con unità di misura: l'altezza della
      riga sarà uguale alla dimensione specificata
     Percentuale: l'altezza della riga viene calcolata come
      una percentuale della dimensione del font
Gestione del testo: text-align
 Imposta l'allineamento del testo. E' ereditata e si
applica a tutti gli elementi:
     Sintassi:   selettore { text-align: ; }
   Valori:
     left:allinea il testo a sinistra
     right: allinea il testo a destra
     center: centra il testo
     justify: giustifica il testo
Gestione del testo: text decoration
   Imposta particolari decorazioni e stili per il testo.
    E‘ ereditabile ed applicabile a tutti gli elementi (p
    {textdecoration:  o ;})
   Valori:
     none:   il testo non ha decorazioni particolari
     underline: il testo sarà sottolineato
     overline: il testo avrà una linea superiore
     line-through: il testo sarà attraversato da una linea
    orizzontale al centro
     blink: testo lampeggiante (p {text-decoration: blink;}
Ancora testo
   Letter-spacing
       blockquote{letter-spacing: 0.1em}
   Word-spacing
       H1 {word-spacing: 1em}
   Text-transform
       capitalize, uppercase, lowercase
       White-space
        normal (sequenze di spazi e “a capo” ignorati)
        pre (sequenze di spazi “a capo” rispettati)
        nowrap (spazi ignorati, “a capo”soppressi)
Colori e sfondi
   Due stili che vanno specificati insieme:
        color: il colore del testo
        sfondo:
           background-color: un colore o ‘transparent’

           background-image: un’immagine specificata da un URL

           gli sfondi non si ereditano ma sono trasparenti

       Sfondi degli elementi
     Background-repeat (repeat, repeat-x, repeat-y, no-repeat)
     Background-attachment (fixed, scroll)
    Background-position (posizione in % o assoluta)
Tabelle
   
    Tabella 3x3
    Header 1
    Cell 1Cell 2
     Header 2
    Cell 3Cell 4
    Header 3
    Cell 5Cell 6
    
   NOTA: specifica per riga
   Aggiungiamo un po’ di stile con i CSS ...
Tabelle e CSS
TH { vertical-align: center;
  text-align: center;
  font-weight: bold; font-size: x-large }
TD { vertical-align: middle }
TABLE {border: 1px solid black }
TR#row1 { text-align: left }
TR#row2 { text-align: center }
TR#row3 { text-align: right }
CAPTION { caption-side: top }
Margini (1)
  Blockquote e le liste (ol, ul) normalmente
rientrano il testo contenuto
 Lo spazio intorno può essere controllato con le
   proprietà:
     margin
     margin-left
     margin-right
     margin-top
       margin-bottom
Margini (2)
Esempio 1
blockquote {
margin-top: 1em;
margin-right: 0em;
margin-bottom: 1em;
margin-left: 0em;
font-style: italic;}
 Esempio 2
blockquote {
margin: 1em 0em 1em
0em;
font-style: italic;}
In senso orario a partire da top
Link
   Link sottolineato o non
       a:link {text-decoration: underline;}
       a:link, a:visited {text-decoration: none}
       a:hover {background: cyan}
       a:hover {color: red}
   Link, visited, hover: sono chiaramentespecializzazioni di
    a. Ma perché i due punti?Non sono proprio classi come
    le altre, sono pseudoclassi perché si basano su proprietà
    che sono esterne al documento (es. un link è stato
    visitato)
Link
 http://css.html.it
 http://www.w3.org/
 http://www.w3.org/Style/CSS/
Basi di Dati.
                Programmazione e
                gestione di sistemi
                telematici
Prof. Paolo Nesi                   lab. DSI-DISIT
nesi@dsi.unifi.it                  055 4796425
Dr.sa. Michela Paolucci
paolucci@dsi.unifi.it
Dr. Emanuele Bellini
bellini@rinascimento-digitale.it
Puoi anche leggere