Utente:Sassospicco/bozza CSS: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Sassospicco (discussione | contributi)
Nessun oggetto della modifica
Sassospicco (discussione | contributi)
Nessun oggetto della modifica
Riga 3:
I '''fogli di stile a cascata''' (dall'inglese '''CSS''' ''Cascading Style Sheet'' sono il linguaggio definito dal [[W3C]] (''World Wide Web Consortium'') per '''definire l'aspetto''' delle pagine [[HTML]] e [[XHTML]]. La loro creazione, avvenuta nel [[1996]] si è resa necessaria per '''separare i contenuti dalla formattazione''' e imporre una programmazione più chiara e facile da utilizzare, sia per l'autore che per l'utente.
 
== FilosofiaMotivi ed evoluzione dei CSS ==
=== Prima dei CSS ===
 
Riga 12:
I '''[[browser]]''' che interpretano il codice (X)HTML mostrano all'utente '''formattazioni predefinite''' per ogni tag che incontrano (così ad esempio i contenuti marcati con il tag <code>&lt;h1></code> avranno carattere ''18pt'' e i contenuti marcati da <code>&lt;p></code> avranno carattere ''12pt''). Tuttavia questa formattazione è completamente '''sotto il controllo dell'utente''', che può modificarla nelle ''Impostazioni'' del suo browser.
 
Per permettere agli '''autori''' di definire l'aspetto delle loro pagine, dal [[1993]] in poi [[Netscape Navigator]] ed [[Internet Explorer]], i due browser che si disputavano gli utenti nella nota [[guerra dei browser]], presentarono '''tag proprietari''', ovvero non aderenti agli ''standard'' e non compatibili con i browser concorrenti. Esempi di questi tag sono <code>&lt;font></code>.
 
Questi tag proprietari di formattazione erano l'unico modo per gli autori di definire la formattazione e così il loro uso è diventato massiccio. Tuttavia questi tag presentano tre problemi:
Riga 18:
#Il primo problema è costituito dalla lunghezza di questi tag. Se confrontata con una pagina che adotta il linguaggio CSS, una pagina che non lo adotta è in genere '''più pesante''' (in termini di [[Bit_(informatica)#Il_.27.27bit.27.27_come_cifra_binaria|bit]]) in un rapporto che spesso raggiunge il '''200%'''. Inoltre le istruzioni CSS possono essere raccolte in un [[file]] esterno che rimane memorizzato nella [[cache]] del browser, riducendo ulteriormente la quantità di dati che i [[server]] devono trasmettere.
#Il secondo problema risiede nella mancanza di logica del codice (X)HTML. Un codice non aderente agli standard, ridondante e confuso comporta infatti molto lavoro aggiuntivo per i browser, che devono cercare di correggere ed interpretare (quando possibile) direttive arbitrarie.
#Il terzo problema comincia a diventare sempre più rilevante ed è la mancanza di compatibilità con i nuovi '''[[Computer_palmare|computer palmari]]''' e gli [[smartphone]]. Queste pagine infatti sono progettate per schermi con risoluzione minima ''800x600 pixel''. I palmari, che hanno una risoluzione inferiore ed una forma dello schermo ben diversa dal rapporto 4:3 dei monitor per computer, si trovano quindi impossibilitati a visualizzare correttamente la pagina e l'utente dovrà tentare di "decodificarla", operazione spesso impossibilemolto scomoda.
 
Si tende ad evidenziare anche un ulteriore questione, nelle pagine web non standard, ovvero l'uso del tag <code>&lt;table></code> (le '''tabelle''') per realizzare l'impaginazione delle pagine web. Questo viene considerato dai puristi come inaccettabile in quanto le tabelle sono pensate per impaginare dati tabulari e non layout web. In realtà l'unico svantaggio serio di questo sistema è l'incredibile peso delle pagine, come già indicato al problema 1.
 
=== CSS 1 ===
 
Per tentare di risolvere questa situazione, nel [[1996]] il W3C '''emanò le specifiche CSS 1'''. I CSS 1 erano un interessante soluzionesistema per separare contenuto da formattazione. Secondo le intenzioni degli sviluppatori il contenuto darebbe stato sempre definito dal codice (X)HTML, mentre la formattazione si trasferiva su un codice '''completamente separato''', il CSS appunto. I richiami tra i due codici venivano effettuati tramite due particolari attributi: '''class''' e '''ID'''. I CSS 1 erano un'efficace soluzione al primo problema (escludendo la questione del tag <code>&lt;table></code>) perché riducevano notevolmente le dimensioni della pagine, e al secondo problema in modo parziale perché consentivano al codice (X)HTML di ritornare leggero ed essenziale. Non prendevano però in considerazione il problema tre, dato che nel 1996 i PDA erano scarsamente diffusi.
 
I CSS 1 erano un sistema semplice ma efficace, ma nonostante le loro grandi potenzialità non ebbero successo a causa della mancanza di browser in grado di supportarli.
 
=== CSS 2 e CSS 2.1 ===
 
Per includere nuove funzionalità e rendere i CSS un linguaggio ben supportato, nel [[1998]] il W3C '''emanò le specifiche CSS 2''' e nel [[2004]] le specifiche '''CSS 2.1'''. I CSS 2 sono la naturale evoluzione dei CSS 1 ed offrono potenti soluzioni per risolvere soprattutto il problema tre, con la possibilità di creare fogli di stile separati per i dispositivi portatili. Il problema due è quasi completamente
=== CSS 2 ===
 
<!-- Il codice della pagine non standard, rappresenta quella che è stato definita una '''zuppa di codice'''. Una zuppa di codice è un codice che contiene elementi non validi (come il tag <code>&lt;marquee></code>), elementi usati per uno scopo diverso da quello per il quale sono stati creati (come il tag <code>&lt;table></code>), elementi usati solo per le loro capacità di formattazione e non per il loro scopo originario (come il tag <code>&lt;h5></code> annidato dentro un <code>&lt;h1></code>). -->