Visualizzazione post con etichetta css. Mostra tutti i post
Visualizzazione post con etichetta css. Mostra tutti i post

CSS - Tipi di valori

Requisiti

Potrebbe essere utile la lettura di:

Introduzione

Di seguito una descrizione delle possibili tipologie di valori che possiamo assegnare alle proprietà.

Parole chiave

Sono identificatori di qualche cosa. Ad esempio il colore del carattere o di sfondo. In questo caso ad es. background: red; la dichiarazione è composta da un nome di proprietà ed un valore che è la paroa chiave red

Dimensioni

Una dimensione comprende sempre un valore numerico (intero o reale) e l'unità di misura, che può essere o assoluta o relativa.

Le unità di misura relative sono le seguenti:

Unità relativaDescrizione
em
ex
px

Le unità di misura assolute sono le seguenti:

Unità relativaDescrizione
mm
cm
in
pt
pc

Percentuali

Colori

Numeri

Stringhe

URI

Sviluppare documenti web: HTML, CSS, Javascript

Una guida più o meno completa su tutto ciò che serve sapere per sviluppare documenti web. Continuamente aggiornata. Attualmente è ancora incompleta e in fase di scrittura.

Indice

Appendice

CSS - Reset

Come detto in precedenza, i contenuti sono formattati graficamente attraverso lo strato presentazione. In altri termini, attraverso il linguaggio CSS, indichiamo ai browser come visualizzare gli elementi del documento.

Ciò che non si è detto è che con il nostro strato di presentazione in realtà andiamo a sovrascrivere uno "strato di presentazione di default" presente su ogni browser, che ha valori CSS predefiniti per ogni elemento.

Possiamo vedere gli effetti di questi valori di default scrivendo un contenuto HTML/XHTML senza CSS:

<h1>Titolo</h1>
<p>Paragrafo</p>
<ul>
   <li>Voce 1</li>
   <li>Voce 2</li>
   <li>Voce 3</li>
</ul>

Visualizzando il codice riportato su un browser qualsiasi, possiamo subito renderci conto di come l'h1 abbia un suo font-size e dei padding/margin già impostati, stessa cosa per il p o per l'ul e per tutti gli altri elementi non riportati nell'esempio.

Se proviamo a visualizzare quello stesso contenuto su browser differenti ciò che probabilmente si noterà è che questi valori di default spesso sono differenti da browser a browser.

Ciò crea non pochi problemi allo sviluppatore che deve scrivere CSS che presenti contenuti allo stesso identico modo su tutti i browser.

Ad esempio, per gli elenchi (ol e ul) alcuni browser hanno un padding-left altri un margin-left che a loro volta possono avere differenti valori.

In tutti questi casi uno sviluppatore dovrebbe affrontare queste incongruenze caso per caso.

Ad esempio, al fine di evitare distanze variabili (margin+padding) da browser a browser, uno sviluppatore dovrebbe ricordarsi sempre di impostare entrambi i valori di margin e padding.

Esistono tantissime varianti di questo tipo che obbligano lo sviluppatore a controllare continuamente il risultato di ciò che scrive su tutti i browser.

Non è rara la situazione in cui, dopo aver testato con un solo browser i CSS, ci si trova a perdere un'enormità di tempo per capire perchè la pagina si visualizza in maniera differente su altri browser

Spesso la causa è proprio dovuta a queste incongruenze sui valori di default dei browser: lavorando con un solo browser abbiamo basato i CSS su un misto tra i valori di default (che non abbiamo forzato) e i nostri valori indicati dai CSS (che hanno forzato i valori di default).

Cambiando browser molti valori di default (non forzati) possono variare cambiando così il modo in cui la pagina si visualizza. La soluzione in questi casi è andare a ricercare tutti valori di default che non abbiamo forzato ed assegnare dei valori nei nostri CSS.

Fortunatamente c'è un modo più intelligente per uscire da questa situazione ed è quella di fare un reset di tutti gli elementi prima di iniziare a scrivere i nostri CSS.

Il reset consiste nel forzare un'impostazione di default uguale per tutti i browser. In questo modo siamo sicuri che tutti i valori di default sono congruenti sin dall'inizio.

Questa operazione di reset è effettuata da altri CSS che sono disponibili in rete. Ad esempio:

http://meyerweb.com/eric/tools/css/reset/

Ovviamente il css del reset va messo prima dei nostri css.

Documenti Web - Vantaggi della separazione degli strati

Requisiti

Potrebbe essere utile la lettura di:

Inoltre, poichè si riprende l'esempio del tutorial:

Perchè è utile separare strato contenuto / presentazione / comportamento

Quando si sviluppa codice di qualsiasi natura (non solo per documenti web) il problema non solo quello di arrivare all'obiettivo. Il problema più grande spesso è manutenere il codice scritto. Di conseguenza ogni volta che si inizia un nuovo progetto la manutenzione di ciò che si andra a sviluppare deve essere un problema da tenere sempre in conto e si deve pensare sempre a come rendersi la vita più semplice.

Detto questo, e se si è letto il tutorial si dovrebbe aver intuito come sia semplice manutenere documenti creati mantenendo i tre strati separati.

Proviamo ora ad immaginare una situazione in cui non si sia mantenuta la separazione degli strati e vediamo cosa poteva succedere.

Supponiamo di avere centinaia o migliaia di documenti web per i quali non abbiamo rispettato la separazione. Ad esempio i documenti potevano:

  • includere codice javascript inline
  • usare HTML / XHTML per formattare il contenuto: ad es. usando l'elemento br per distanziare paragrafi o altri elementi, o ad esempio il deprecatissimo tag font
  • includendo CSS direttamente inline negli elementi del contenuto (attraverso l'attributo style)

Dopo un certo periodo si decide di cambiare la presentazione del sito modificando:

  • colore paragrafi (p) in precedenza impostato tramite css inline.
  • le distanze tra i paragrafi separati da elementi di formattazione br

In questo caso si dovrebbero riprendere tutti i documenti andando a ricercare i tag br per aggiungerli o eliminarli e tutti i css inline cambiando codice del colore. Tradotto: un'enorme spreco di tempo.

Supponiamo ancora di aver incluso codice Javascript direttamente nel contenuto. Ad esempio il codice per l'area che diventava rossa al passaggio del mouse è replicato su n documenti differenti. Se si dovesse decidere di cambiare comportamento al codice, ad es. facendo diventare gialla l'area sensibile si dovrebbe anche in questo caso andare alla ricerca del codice su tutti i documenti modificandone il comportamento. Anche in questo il tutto si tradurrebbe, ancora una volta, in un enorme spreco di tempo.

Se avessimo rispettato le regole descritte in precedenza, i contenuti sarebbero rimasti invariati. Le modifiche si sarebbero dovute effettuare solamente su 2 file (presentazione e comportamento) e al max. su 2 righe di codice.

Documenti Web / Tutorial

Requisiti

A livello "teorico" potrebbe essere utile la lettura di:

a livello "pratico" abbiamo bisogno di:

  • Notepad++, editor free scaricabile da http://notepad-plus-plus.org
  • Firefox, browser usato in questo tutorial insieme a
  • Firebug (opzionale) utile per il debug

Per evitare qualche problema con browser e css è utile scaricare:

Per semplificarci il lavoro sullo strato comportamento, riducendo al minimo il codice Javascript che dobbiamo scrivere, ci occorrerà:

Introduzione

In questo tutorial vedremo come sviluppare correttamente un documento web, mantenendo completamente separati i 3 strati descritti in precedenza: contenuto (XHTML), presentazione (CSS), comportamento (Javascript).

L'obiettivo è: creare 2 documenti, nei quali saranno presenti un titolo, un menu (per passare da un contenuto all'altro) e qualche paragrafo. Oltre a questo dovranno contenere un'area sensibile che si attiva e cambia colore al passaggio del mouse.

Al termine capiremo perchè è vantaggioso mantenere gli strati separati e distinti.

Struttura directory e file

Iniziamo creando la nostra directory/cartella di "lavoro" che chiameremo tutorial in cui andremo a mettere i nostri file.

All'interno di questa directory/cartella creiamo altre 2 sotto-directory che chiameremo css e js.

La prima (css) conterrà il/i file relativi allo strato presentazione (con estensione .css), la seconda (js) quelli relativi allo strato comportamento (con estensione .js). La "radice" (tutorial), invece, conterrà i file relativi allo strato contenuto (con estensione .html).

In definitiva dobbiamo avere una struttura di questo tipo:

  • tutorial
    • css
      • presentazione.css
    • js
      • comportamento.js
    • contenuto1.html
    • contenuto2.html
    • ...

Possiamo anche da subito crearci i file riportati nella struttura lasciandoli vuoti (li riempiremo mano a mano).

Reset CSS

Il motivo per cui è necessario fare un reset dei CSS è descritto nella sezione CSS - Reset! di questa guida.

Nel sito indicato sopra preleviamo il codice CSS e incolliamolo nel file reset.css all'interno della directory css.

La directory css dovrà quindi avere (se si sono già creati i file del punto precedente) i file seguenti:

  • ...
  • css
    • presentazione.css
    • reset.css
  • ...

JQuery

Se abbiamo già scaricato JQuery, ci ritroveremo un file jquery-1.5.2.min.js che dovremo posizionare all'interno della directory/cartella js.

La directory js dovrà quindi avere (se si sono già creati i file del punto precedente) i file seguenti:

  • ...
  • js
    • comportamento.js
    • jquery-1.5.2.min.js
  • ...

Strato contenuto

I contenuti sono memorizzati su file .html e contengono solo codice HTML / XHTML con riferimenti a file .css e .js esterni.

Vediamo ora di scrivere i contenuti i 2 file partendo da contenuto1.html nel quale andremo ad inserire il codice riportato di seguito:


<html>
 <head>
  <title>Contenuto 1</title>
  <link rel="stylesheet" href="./css/reset.css" type="text/css" />
  <link rel="stylesheet" href="./css/presentazione.css" type="text/css" />
  <script type="text/javascript" src="./js/jquery-1.5.2.min.js" ></script>
  <script type="text/javascript" src="./js/comportamento.js" ></script>
 </head>
 <body>
  <h1>Contenuto 1</h1>
  <ul class="menu">
   <li>Contenuto 1</li>
   <li><a href="contenuto2.html">Contenuto 2</a></li>
  </ul>
  <div class="testo">
   <p>Questo è un semplice testo di prova.</p>
   <p>Questo è un secondo paragrafo.</p>
  </div>
  <div id="area_sensibile">Passa sopra con il mouse</div>
 </body>
</html>

Il file contenuti2.html conterrà invece il codice seguente:


<html>
 <head>
  <title>Contenuto 2</title>
  <link rel="stylesheet" href="./css/reset.css" type="text/css" />
  <link rel="stylesheet" href="./css/presentazione.css" type="text/css" />
  <script type="text/javascript" src="./js/jquery-1.5.2.min.js" ></script>
  <script type="text/javascript" src="./js/comportamento.js" ></script>
 </head>
 <body>
  <h1>Contenuto 2</h1>
  <ul class="menu">
   <li><a href="contenuto1.html">Contenuto 1</a></li>
   <li>Contenuto 2</li>
  </ul>
  <div class="testo">
   <p>Questo è un semplice testo di prova.</p>
   <p>Questo è un secondo paragrafo.</p>
  </div>
  <div id="area_sensibile">Passa sopra con il mouse</div>
 </body>
</html>

Dai contenuti richiamiamo i file esterni e condivisi che si occupano dello strato presentazione e comportamento.

Da notare, anche se i contenuti sono molto semplici, di come non esista traccia, all'interno del documento, dei linguaggi CSS e Javascript, ma solo richiami a questi.

Strato presentazione

I file presentazione sono memorizzati su file .css e come abbiamo visto sono richiamati dai file .html (evitando di includere linguaggio CSS nel documento HTML/XHTML).

Nel file css dobbiamo dire come visualizzare i contenuti:


body {
 font-family: Verdana, Arial;
 padding: 15px;
}

h1 {
 font-size: 24px;
 font-weight: bold;
}

ul.menu {
 margin-top: 15px;
 font-weight: bold;
 height: 30px;
}

ul.menu li {
 float: left;
 margin-right: 15px;
}

.testo p {
 margin-top: 15px;
}

#area_sensibile {
 margin-top: 15px;
 padding: 15px;
 font-size: 20px;
 font-weight: bold;
 border: 1px solid #999;
 color: #999;
}

Strato comportamento

Buona norma è evitare di includere codice Javascript direttamente nei documenti HTML ma scriverlo in un file esterno con estensione .js e richiamarlo dalla pagina .html in modo da condividere lo stesso file .js su più file .html .

Vediamo ora, riprendendo il solito documento di esempio come far diventare rosso il div al passaggio del mouse.


$(document).ready( function() {
 $('#area_sensibile').mouseover( function() {
  $(this).css('background', 'red');
  $(this).css('color', 'green');
 });
 $('#area_sensibile').mouseout( function() {
  $(this).css('background', 'green');
  $(this).css('color', 'red');
 });
});

Modifiche ai documenti

I documenti, organizzati in questo modo richiedono una manutenzione minima. Ogni modifica sulla presentazione richiede solo la modifica di un file, così è per modifiche a livello di comportamento.

Se non avessimo rispettato la separazione degli strati probabilmente avremmo avuto qualche problema in più.

CSS - Dichiarazioni, proprietà, valori

Requisiti

Introduzione

Una regola CSS è così composta:

regola-css := selettori blocco-dichiarazione
selettori := selettore (, selettore)*
blocco-dichiarazione := '{' dichiarazione (;dichiarazione)* ;? '}'

I selettori individuano gli elementi del documento HTML/XHTML ai quali applicare la presentazione descritta nel blocco-dichiarazione.

Nel blocco dichiarazione è presente un insieme di dichiarazioni che specificano come presentare le varie proprietà degli elementi. Per l'ultima dichiarazione il ; non è obbligatorio ma è buona regola metterlo sempre.

Ad esempio:

h1, h2 {
   margin: 0px;
   padding: 0px;
}

In questo caso i selettori sono h1 e h2 seguiti dal blocco dichiarazioni { ... }. All'interno del blocco dichiarazioni sono presenti 2 dichiarazioni margin: 0px; e padding: 0px;.

Dichiarazioni

La singola dichiarazione è espressa in questo modo:

dichiarazione := nome-proprieta ':' valore

Una dichiarazione CSS è composta da un nome di proprietà e un valore.

Ad esempio:

h2 {
   color: red;
   font-size: 15px;
}

E' possibile anche avere più blocchi di dichiarazione con lo stesso selettore, in tal caso la regola precedente poteva anche essere riscritta in questo modo:

h2 {
   color: red;
}
h2 {
   color: red;
}

E per questo è necessario subito questa precisazione:

h2 {
   color: red;
}
h2 {
   color: green;
}

In 2 regole abbiamo definito la stessa proprietà. In tal caso vale sempre l'ultima (che sovrascrive la precedente).

Proprietà

Sono identificate da un nome che deve essere scritto correttamente, altrimenti la dichiarazione è ignorata.

Indica in generale ciò che vogliamo caratterizzare graficamente. Ad esempio per un box si potrebbe volere un bordo di 1 pixel. In questo caso il nome della proprietà è border, oppure il colore del testo color.

Un nome di proprietà è un identificatore CSS: deve iniziare con una lettera [a-z] e può contenere lettere [a-z], numeri [0-9], -, _ .

Valori

Possiamo caratterizzare graficamente un elemento indicando quindi il nome della proprietà e un. I valori possono essere: parole chiave, stringhe, colori, numeri, dimensioni, percentuali, URI, che sono descritti in CSS - Tipi di valori

Ogni proprietà ha un valore che se non specificato esplicitamente o ereditato è un valore di default.

Forma abbreviata delle proprietà

Le proprietà possono essere espresse in una forma abbreviata. Ad esempio per definire i margini di un box normalmente possiamo scrivere:

.box {
   margin-top: 1px;
   margin-right: 2px;
   margin-bottom: 3px;
   margin-left: 4px;
}

che in forma abbreviata diventa:

.box { margin: 1px 2px 3px 4px; }

L'ordine delle proprietà è segue un ordine "orario" e parte dal top.

E' possibile anche altre raggruppare altre proprietà differenti:

background-color: #fff;
background-image: url(background.png);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right top;

diventa:

background: #fff url(background.png) no-repeat fixed right top;

CSS - Introduzione

Requisiti

Potrebbe essere utile la lettura di:

Introduzione

CSS è il linguaggio utilizzato per descrivere la presentazione dei documenti web (ad es. layout, colori, font, etc.).

È indipendente da HTML/XHTML e può essere utilizzato con qualsiasi altro linguaggio basato su XML.

Come associare CSS al contenuto (HTML/XHTML)

Esistono 3 modi per utilizzare CSS con HTML/XHTML:

  • l'uso dell'elemento HTML/XHTML link all'interno dell'head per richiamare un file CSS esterno
  • l'uso dell'elemento style o dell'attibuto style presente per ogni elemento del body su HTML/XHTML

Poichè l'elemento style o l'attributo style permettono di includere codice CSS all'interno dello strato contenuto questa pratica è fortemente sconsigliata.

Ciò che invece deve essere utilizzato è l'elemento link, in questa forma:

<link rel="stylesheet" href="uri_css" type="text/css"/>

dove uri_css è l'URI assoluto o relativo alla risorsa che contiene il codice CSS da utilizzare nel contenuto.

In uno stesso documento/contenuto è possibile includere un numero a piacere di elementi link per includere tutti i CSS necessari (ad es. quando le regole CSS richieste per il documento sono su file separati).

Sintassi e componenti fondamentali

In un documento CSS possiamo trovare:

  • commenti
  • rule set
  • at rule

solo per chiarezza nella lettura che segue se ne riporta un esempio:

/* CSS di esempio */

@import url(altro_css.css);

h1 {
   font-size: 24px;
   color: #ddd;
}

Di seguito analizzeremo un po' più in dettaglio i 3 componenti.

Commenti

/* CSS di esempio */

I commenti sono utilizzati dall'autore del CSS per annotarsi qualsiasi tipo di informazione (es. annotazioni per comprendere meglio il codice etc.) e sono ignorati dagli interpreti del linguaggio.

Iniziano sempre con un /* e terminano con un */ .

At-rule

Sono istruzioni/direttive per il parser CSS, usate per vari scopi.

In genere sono scritte prima dei rule set.

@import url(altro_css.css);

Da quì è possibile proseguire con l'approfondimento degli at-rule.

Rule set

Hanno la forma seguente:

rule-set := selettori blocco-dichiarazioni
blocco-dichiarazioni := '{' dichiarazioni '}'

Il rule set comprende selettori e blocco di dichiarazioni che inizia con { e finisce con }.

Abbiamo sempre almeno 1 selettore che individua gli elementi di un documento HTML/XHTML per i quali se ne definisce la presentazione attraverso le dichiarzioni scritte all'interno del blocco dichiarazioni.

Ad es. un rule set CSS può essere:

h2 {
   font-size: 15px;
   color: red;
}

dove h2 è il selettore che individua l'elemento h2 HTML/XHTML,

{
   font-size: 15px;
   color: red;
}

è il blocco dichiarazioni, e font-size: 15px;, color: red; sono le dichiarazioni le quali sono composte da un nome di proprietà e un valore.

Da quì è possibile proseguire un approfondimento sui selettori oppure con un approfondimento su dichiarazioni, proprietà e valori.

CSS - Selettori

Requisiti

Potrebbe essere utile la lettura di:

Introduzione

I selettori sono quella parte delle regole CSS che individuano un gruppo di elementi di un documento HTML/XHTML ai quali si vogliono applicare le proprietà CSS.

Nella definizione di una regola CSS si utilizza la sintassi indicata di seguito:

regola_css := selettori blocco_definizioni
selettori := selettore [, selettori]

Per ogni regola CSS dobbiamo indicare a quali elementi vogliamo applicare le proprieta' attraverso o 1 singolo selettore o più selettori (per indicare più gruppi di elementi).

Di seguito sono descritti tutti i tipi di selettori CSS.

Selettore di elementi HTML/XHTML

Hanno la forma seguente:

nome_elemento { proprieta }

La regola applica le proprietà a tutti gli elementi del documento HTML/XHTML che hanno il nome indicato da nome_elemento. Ad esempio:

h1 { color: red; }

In questo caso tutti gli elementi H1 (titolo) del documento HTML/XHTML avranno colore rosso.

Selettore di classi

Serve a selezionare tutti quegli elementi che appartengono ad una classe indicata nell'attributo class dell'elemento stesso.

Ad esempio:

<div class="nome_classe">...</div>

La regola CSS andà scritta in questo modo:

.nome_classe { proprieta }

Per uno stesso elemento, nell'attributo class, possiamo applicare più classi separate da uno spazio. Ad esempio:

<h1 class="classe_1 classe_2...classe_n">...</h1>

Possiamo utilizzare insieme selettori di elementi e selettori di classe. Ad esempio:

h1.nome_classe { proprieta }

In questo caso applicheremo le proprietà ai soli tag h1 che fanno parte della classe nome_classe:

<h1 class="nome_classe">...</h1>

Selettore di ID

Agli elementi di un documento HTML/XHTML è possibile assegnare un id univoco. Ad esempio:

<div id="id_univoco">...</div>

I selettori di ID permettono quindi di selezionare un unico elemento del documento HTML/XHTML. Hanno la forma seguente:

#id_univoco { proprieta }

ed applicano le proprietà all'unico elemento del documento identificato da id_univoco.

Selettore di attributi

Selettore universale (*)

Documenti Web - HTML / CSS / Javascript

Un documento web "ben formato" è composto da 3 componenti distinti e separati (si capirà meglio in seguito il motivo):

  • strato contenuto (HTML/XHTML)
  • strato presentazione (CSS)
  • strato comportamento (Javascript)

Strato contenuto - HTML/XHTML

Il contenuto è l'informazione che si vuole trasmettere all'utente. Comprende testo, immagini, suoni, video, altro.

L'informazione è descritta strutturalmente e semanticamente attraverso i linguaggi HTML o XHTML (o l'uno o l'altro).

Vediamo di capire meglio cosa si intende: un contenuto (es. il testo di un libro) è strutturato in titoli, sottotitoli e paragrafi i quali possono comprendere citazioni, indirizzi, codici, immagini, suoni, video etc.

HTML o XHTML devono essere usati solo ed esclusivamente per descrivere il contenuto. In altri termini è utilizzato per dire: "questo è un titolo" (h1, h2, ...), "questo è un paragrafo"(p), "questa è una citazione" (cite), "questa è una tabella che ha queste intestazioni di colonna" (table, tr, th, td) etc.

HTML o XHTML, pur permettendolo, non devono essere usati per definire l'aspetto del documento (compito dello strato presentazione e dei CSS) e non devono includere regole di comportamento (poichè compito dello strato comportamento).

Da qui è possibile proseguire con l'introduzione a HTML/XHTML.

Strato presentazione - CSS

Definisce l'aspetto dei contenuti. Per aspetto non si intende solo quello grafico: un documento può essere visualizzato anche in altre forme su altri dispositivi. Ad esempio per i non vedendi potrebbe esserci un lettore vocale, oppure potrebbe essere una "visualizzazione cartacea" su stampante.

L'aspetto dei contenuti è definito attraverso l'uso dei CSS che permettono di specificare, attraverso i selettori, come visualizzare/presentare gli elementi del contenuto.

HTML e XHTML permettono di includere CSS direttamente inline negli elementi. Questa è una pratica da evitare. I CSS devono essere su file esterni richiamati dai file dello strato contenuto.

Da qui è possibile proseguire con un'introduzione ai CSS.

Strato comportamento - Javascript

Definisce l'interazione con l'utente attraverso il linguaggio di scripting Javascript. Con interazione si intende ad es. la semplice validazione dei dati immessi dall'utente in un form oppure anche la gestione di un'interfaccia simile alle applicazioni standalone.

In questo strato è utile l'uso di librerie o framework che ci semplificano il lavoro. Tra i vari framework disponibili segnalo JQuery.

HTML e XHTML permettono di includere codice Javascript direttamente inline negli elementi o nel contenuto. Anche questa è una pratica da evitare e sarebbe opportuno portare tutto all'esterno su file separati.

Da quì è possibile proseguire con Introduzione a Javascript.

Per approfondire ...

È possibile approfondire gli argomenti trattati nelle pagine seguenti:

Se invece si ha già una conoscenza di base è possibile proseguire con il tutorial che mostra come creare un documento web mantenendo la separazione dei 3 strati descritti:

Riferimenti

CSS - At-rules

Requisiti

Potrebbe essere utile la lettura di:

Introduzione

Le at-rules CSS sono istruzioni/direttive date in pasto al parser CSS per vari scopi.

@charset


Esempio:
@charset "ISO-8859-15";

Utilizzato per indicare la codifica dei caratteri di un css esterno. Deve essere la prima riga di un file css.

Uno user agent identifica la codifica dei caratteri di un CSS esterno in 4 modi e se falliscono tutti utilizza una codifica predefinita (UTF-8):
  • l'attributo charset dell'header HTTP inviato come risposta da un web server
  • l'at-rule @charset
  • l'attributo charset nel tag link del documento HTML
  • la codifica del documento che riferisce il css
@import 

@import { URI | string } [ media type, ... ] ; 

Esempi:
@import url("../css/main.css");
@import "local.css";
@import url(/css/screen.css) screen, projection; 

E' usato per importare regole CSS all'interno di un altro CSS.
Deve essere messo prima di tutte le altre regole ad eccezione del @charset se presente.
Gli URI relativi sono importati a partire dalla posizione del CSS che contiene la direttiva @import
E' possibile specificare i media type ai quali applicare gli stili importati.

@media

Sintassi:
@media media type,… {
    regole
}

Esempio:

@media screen {
    html {
        background: #fff;
        color: #300;
    }
    body {
        margin: 0px;
    } 
}
@media print {
    html {
        background: #fff;
        color: #000;
    }
    body {
        padding: 5px;
        border: 1px solid #666;
    }
}

Permette di specificare regole di stili applicabili solo a determinati media type.
Nell'esempio si creano 2 stili differenti per 2 dispositivi differenti: screen e print. 

@page


@page {
   margin: 2.5cm; /* default per tutte le pagine */
}
@page :left {
   margin-left: 5cm; /* solo le pagine a sinistra */
}
@page :right {
   margin-right: 5cm; /* solo le pagine a destra */
}
@page :first {
   margin-top: 8cm; /* margine extra solo per la prima pagina */
}

Permette di specificare i margini per la stampa delle pagine, media type printer.
Nell'esempio usando i selettori :left, :right, :first si indica che i margini sono riferiti rispettivamente alle pagine sinistre, destre e prima pagina.


@font-family

Esempio:
@font-face {
   font-family: 'Miofont';
   src: url(./font/miofont.eot);
   src: local('miofont'), url('./font/miofont.ttf') format('truetype');
}

h1 {
  font-family: MioFont, Verdana;

  font-size: 12px;
}


Di norma, nelle pagine web, vengono utilizzati font web-safe (es. Times New Roman, Verdana), ovvero quei font che si è sicuri siano presenti su ogni sistema. Questa regola ci permette di caricare all'interno delle pagine un font personalizzato la cui definizione è presente su un file (TTF, EOT, etc.) che il browser andrà a scaricare.

Non tutti i browser però sono in grado di leggere tutti i formati dei file di font. Ad esempio mentre per FF si può indicare un TTF, per IE occorre indicare un EOT.  

Se partiamo dal TTF possiamo comunque convertire in EOT tramite questo software online:
http://www.kirsle.net/wizards/ttf2eot.cgi


Nell'esempio riportato IE scaricherà l'EOT ignorando il TTF, Firefox scaricherà il TTF ignorando l'EOT.
Il font sarà renderizzato all'interno della pagina nel tag H1. Nel caso si verificasse un qualsiasi problema sarà utilizzato il font Verdana.


Il path indicato per il file del font è relativo al file contenente il CSS.

Attraverso la regola è poi possibile specificare fino a 24 proprietà differenti (font descriptors) che permettono di definire il font o influenzare il browser nella selezione del font.

@namespace

Permette di definire stili solo per un namespace .

@namespace foo "http://example.com/ns/foo";
foo|bar {
  declarations
}


<abc xmlns:xyz="http://example.com/ns/foo">
  <xyz:bar>...</xyz:bar>
</abc>

 

Riferimenti

    Lettori fissi

     
    DISCLAIMER: Questo blog non costituisce una testata giornalistica. Non ha carattere periodico ed è aggiornato secondo la disponibilità e la reperibilità dei materiali. Pertanto non può essere considerato in alcun modo un prodotto editoriale ai sensi della Legge. n. 62 del 2001.
    COPYRIGHT: Tutti i diritti sui testi/contenuti presenti su questo blog sono di proprietà dell'autore. Per utilizzare il materiale contattarmi all'indirizzo: nevit76@gmail.com