Visualizzazione post con etichetta Web Develop: Html Xhtml CSS. Mostra tutti i post
Visualizzazione post con etichetta Web Develop: Html Xhtml CSS. Mostra tutti i post

lunedì 12 settembre 2011

@font-face kits: perchè non usare quelli di Fontsquirrel.com?

0 commenti

Grazie al CSS3 oggi è possibile utilizzare qualsiasi tipo di font (licenza permettendo) nelle nostre pagine web, senza incombere nel tedioso inconveniente del visitatore sprovvisto di tale font nel suo computer.

Sono sufficienti pochi righe nel nostro css, e un font in diversi formati, per ottenere la magia. Insomma, è sufficiente un @font-face kit. Creare un @font-face kit manualmente però non è facile né scontato. Esistono però dei tool online che ci consentono la creazione di questi kits previo caricamento da parte nostra del font che vogliamo utilizzare.

Ma Fontsquirrel.com fa ancora di più: ci mette a disposizione centinaia di @font-face kits già pronti all'uso. E' sufficiente scaricarli a questa pagina e usarli nel nostro sito. E i font proposti sono veramente belli... Vi consiglio di passare il link anche al vostro grafico ;)
Leggi tutto...

giovedì 18 agosto 2011

Pageflip, pdf sfogliabili, cataloghi sfogliabili online: alcune soluzioni

1 commenti
Ho notato come sia sempre più diffuso, e come gli stessi clienti richiedano sempre più di frequente, l'uso di cataloghi sfogliabili online, il cosiddetto pageflip (dal nome del primo strumento inventato allo scopo).

Esistono diversi strumenti per realizzare questo effetto, vi elenco quelli da me conosciuti, ma vi prego di segnalarmi le vostre soluzioni!

Pageflip
Il primo e originale, arrivato ormai alla versione 4. Il nuovo Pageflip è scritto interamente in AS3, supporta tutti i file immagine e gli SWF, animazioni frame by frame o animazioni realizzate via codice, anche con interazione con gli eventi del Page Flip. Possibilità di popup invisibili o visibili al mouseover. Sfondo personalizzato con immagine, colori e suoni per ogni pagina. Trasparenza a più livelli, riproduzione video.
L'ultima versione è a pagamento, con costi diversi a seconda dell'uso personale o multi sito.
La versione 2 è gratuita, ma per il suo utilizzo è richiesta una conoscenza perlomeno base di Adobe Flash e il software stesso: http://pageflip.hu/pageflip2/index.php


FlashPageFlip.com
Flash Page Flip (FPF) è un oggetto SWF pronto all'uso. Supporta file SWF e JPG. Non è un componente flash. Non è necessario usare Flash per creare il tuo libro sfogliabile con FPF, è sufficiente creare i JPG delle pagine e aggiornare l'XML (è sufficiente un programma di grafica e il blocco note di windows).
La versione Free di Flash Page Flip non dispone di funzioni avanzata ma ha alcune caratteristiche interessanti come il ridimensionamento e la navigazione.

Megazine 3 Pageflip
Megazine 3 è un pageflip realizzato in Flash che ricrea sullo schermo l'aspetto di un vero libro o rivista di carta. Ed è molto di più... può contenere oggetti multimediali come video e audio, ma anche moduli interattivi, giochi e quiz. Magazine 3 offre una flessibilità e una potenzialità uniche, grazie al suo concept di completa apertura e configurazione estesa.
Megazine 3 è gratuito fino a 50 pagine ma senza logo personalizzato (per scuole e università è gratuito senza limiti). La versione 1.x è completamente gratuita ma non più aggiornata e priva di supporto.

FlippingBook
FlippingBook HTML Edition è un set di files javascript e SWF collegati ad una pagina HTML. Quando la pagina viene caricata, il codice crea automaticamente il libro sfogliabile con le seguenti caratteristiche: zoom, stampa, salva, contenuti, navigazione.

Altri servizi:
FlipViewer
FlipBuilder
FlipCreator
Issuu
Leggi tutto...

martedì 9 agosto 2011

Greenpit: un altro sito indispensabile per designers e developers

0 commenti
Un altro bel sito da tenere sempre sotto controllo è GreenPit, risorse web per designers e developers.
All'interno potrete trovare articoli e recensioni su scripts javascript, xhtml & css, e molto altro.

Da leggere!
Leggi tutto...

25 menu a tendina / dropdown a più livelli

1 commenti
Sempre da Noupe vi segnalo questo articolo, che raccoglie 25 menu dropdown (orizzontali e verticali) multilivello, realizzati usando Javascript e CSS: http://www.noupe.com/css/multilevel-drop-down-navigation-menus-examples-and-tutorials.html
L'articolo è datato e la grafica di alcune soluzioni lascia molto a desiderare, però possiamo riutilizzare il codice degli esempi proposti e migliorarlo a nostro piacimento ;)

Leggi tutto...

giovedì 4 agosto 2011

Clear dei float, usate ancora il div vuoto?

0 commenti
Il primo e più vecchio modo di eliminare il problema degli elementi float era il classico div vuoto con stile clear:both;... Semplice, veloce, peccato per quel markup extra presente sulla pagina!
Oggi stanno prendendo piede i metodi di auto clear, nonostante siano necessari degli hack affinchè funzionino correttamente anche sui browser più vecchi.

Ma un metodo poco discusso e forse poco diffuso è quello di usare lo stile overflow:hidden; sull'elemento contenitore degli elementi floattanti. Veloce e indolore.

Un esempio? Allora vi rimando a Quirksmode, che in questo articolo http://www.quirksmode.org/css/clearing.html parla proprio di questa tecnica!
Leggi tutto...

I 10 migliori hack CSS

0 commenti
Un articolo un po' vecchiotto ma sempre attuale è questo di StylizedWeb: http://stylizedweb.com/2008/02/14/10-best-css-hacks/

L'articolo affronta alcune delle problematiche ben conosciute a noi web designer e front-end developer: allineamento verticale dei div, png trasparenti, auto clear, ecc.

Un articolo da tenere sempre nei preferiti!
Leggi tutto...

domenica 7 novembre 2010

Letture consigliate per gli sviluppatori e i progettisti web

0 commenti
Vi segnalo alcune letture che io stessa sto per iniziare:

- PHP. Le tecniche per scrivere il codice migliore. di MCINTYRE PETER
(su Hoepli: http://www.hoepli.it/libro/php/9788848125055.asp)

- Professional Php Design Patterns. di SARAY AARON
(su Hoepli: http://www.hoepli.it/libro/professional-php-design-patterns/9780470496701.asp)

- SEO POWER. di TAVERNITI GIORGIO
(su Hoepli: http://www.hoepli.it/libro/seo-power/9788820344597.asp)

- EMAIL MARKETING. di GORNI NAZZARENO, MAGLIO MARCO
(su Hoepli: http://www.hoepli.it/libro/e-mail-marketing/9788820341831.asp)

- S.E.O. Ottimizzazione web per motori di ricerca. di DAVIDE VASTA
(su Apogeo: http://www.apogeonline.com/libri/9788850328147/scheda)

Buona lettura :)
Leggi tutto...

Il nuovo metodo per il clear dei float

1 commenti
Qual è il vostro metodo per il clear degli elementi flottanti (stiamo parlando di CSS, non vi preoccupate!)?
Alcuni di voi useranno l'ormai consolidato div vuoto con proprietà clear:all;.
Altri useranno la proprietà overflow:hidden; nell'elemento contenitore.
Altri ancora magari non si sono mai posti il problema :)


Da qualche mese a questa parte è stata elaborata una nuova soluzione a questo annoso problema di noi poveri sviluppatori web, chiamata The New Clearfix Method.

Il clearfix hack, detto anche easy-clearing hack, è un utile metodo per il clearing dei floats. Questo hack funziona molto bene ma si rivolge a browser ormai obsoleti o sulla via del declino. In particolare, IE5 per Mac ormai è storia, e non c'è ragione di tenerne conto nel nostro metodo di clearing.

L'originale clearfix hack è questo:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix { display: inline-table; }
/* Hides from IE-mac \*/
* html .clearfix { height: 1%; }
.clearfix { display: block; }

Il nuovo clearfix hack, proposto da Perishable Press, è il seguente:
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

/* End hide from IE-mac */
Tutte le spiegazioni a questo indirizzo: http://perishablepress.com/press/2009/12/06/new-clearfix-hack/
Leggi tutto...

lunedì 19 gennaio 2009

sIFR, ovvero come usare qualsiasi carattere nel web

1 commenti
Circola già da parecchio tempo nella rete, ma non se ne sente parlare molto.
Si tratta di sIFR, il metodo per inserire caratteri "non standard" nelle pagine web senza sacrificare l'accessibilità, l'ottimizzazione per i motori di ricerca o la semantica del linguaggio di markup.

Come funziona?
L'intento di sIFR è quello di sostituire alcune frasi in testo "semplice" con un testo scritto con un qualsiasi carattere di nostra scelta, senza doversi preoccupare che questo sia installato nel computer dei nostri visitatori. Come è possibile? Grazie ad un'abile combinazione di Javascript, CSS e Flash.

In pratica:
  1. Il browser carica una normale pagina (X)HTML.
  2. Una funzione javascript dapprima controlla che Flash Player sia installato e quindi controlla i tag, gli id e le classi che abbiamo assegnato al testo.
  3. Se Flash non è installato, o se Javascript è disabilitato, non succede nulla. Altrimenti Javascript controlla il codice della nostra pagina misurando ogni elemento che vogliamo "trasfomare" con sIFR.
  4. Una volta terminata la misurazione, lo script crea un filmato Flash delle stesse dimensioni e lo posiziona sopra all'elemento originale, passando al filmato il testo originale come variabile.
  5. L'actionscript interno al filmato provvede a scrivere il testo con il carattere da noi scelto, ridimensionandolo fino a che non rientra perfettamente nelle dimensioni del filmato.

Tutto questo accade in meno di un secondo, per cui nulla di questo processo è visibile all'utente. Al limite si potrebbe riscontrare un breve ritardo nel caricamento del filmato Flash.

Accessibilità
sIFR è accessibile dagli screenreader e da altre tecnologie di assistenza. Nonostante l'uso di Flash, l'accessibilità viene mantenuta dal codice, che contiene solo testo. Inoltre il testo prodotto da sIFR è selezionabile, e quindi può essere copiato ed incollato dagli utenti. E naturalmente può essere linkato.

Compatibilità
La compatibilità è totale, nel senso che i maggiori browser vedono correttamente lo script, mentre tutti gli altri vedono comunque un testo formattato, anche se non nel carattere desiderato.

Link utili
Leggi tutto...

lunedì 1 dicembre 2008

Le regole d'oro per creare un buon sito web

1 commenti
Per realizzare un buon sito internet occorre attenersi ad una serie di principi guida, evitando così alcuni errori molto comuni, che pregiudicano irrimediabilmente la qualità del sito.

Questi consigli vi aiuteranno a progettare al meglio il vostro sito.

1. Navigazione in evidenza.
Il visitatore si aspetta di trovare il menu di navigazione nella parte superiore o nel lato sinistro. Non è strettamente necessario seguire questa impostazione, ma è sempre consigliabile metterlo particolarmente in evidenza.

2. Utilizzare pochi colori, coerenti con il logo scelto.
E' sconsigliabile utilizzare un numero eccessivo di colori, che distolgono l'attenzione dell'utente dai contenuti principali. E' meglio limitare la scelta tra 2 o 3 colori, possibilmente gli stessi utilizzati nel logo, e loro sfumature.

3. Attenzione ai font.
Nella progettazione del nostro sito dobbiamo ricordare che i caratteri preinstallati nei computer sono relativamente pochi, e non possiamo correre il rischio che il nostro visitatore non abbia il font che abbiamo scelto. E' meglio quindi limitare la nostra scelta ai caratteri standardi: Arial, Verdana, Tahoma, Times New Roman, Georgia, Courier. E cercate di evitare il Comic Sans, ormai terribilmente obsoleto. Date al vostro carattere un colore che lo renda facilmente distinguibile dallo sfondo, senza diventare fastidioso. La combinazione migliore è sfondo bianco / testo nero. Ricordate che per testi molto lunghi l'accoppiata sfondo nero / testo bianco è da evitare perchè rende meno agevole la lettura.

4. Repeat repeat repeat.
Nelle pagine interne del sito è utile ripetere la stessa struttura della home, o meglio collocare gli stessi elementi nelle stesse posizioni. Inoltre è meglio mantenere lo stesso stile per i titoli di uguale rilevanza. In questi casi ci viene in aiuto il foglio di stile (CSS). Infatti è buona norma creare un solo foglio di stile per tutto il sito, che setti le caratteristiche degli elementi ricorrenti, quali titoli, tag, paragrafi, link. In questo modo l'utente si sente più "sicuro" e può navigare con più facilità.

5. Stop al contatore.
Al giorno d'oggi, nei siti "ufficiali", non si utilizza più il contatore utenti "a vista". E' molto più comodo ed elegante inserire uno dei tanti script gratuiti come Google Analytics o PHP Stats, che oltre a darci il numero dei visitatori, ci fornisce notevoli informazioni su chiavi di ricerca, pagine più visitate, percorsi di visita, provenienze, browsers utilizzati, ecc.

6. Evitare testi lampeggianti o in movimento.
I testi lampeggianti o in movimento stile insegna non vanno più di moda. Evitate di usarli, serviranno solo ad irritare i vostri visitatori e a dare al vostro sito un aspetto non professionale.

7. Titoli coerenti.
Il titolo è molto importante per la pagina web, sia per il visitatore, che si aspetta di trovare un contenuto coerente, sia per il motore di ricerca, che lo ritiene la "chiave" di lettura della pagina. E' necessario che il titolo sia semplice ma chiaro, e correlato strettamente con i contenuti presenti nella pagina.

8. No ai frame.
Non utilizzare più i frames! Sono obsoleti, inaccessibili, sconsigliati per l'ottimizzazione sui motori di ricerca.

9. Evitate i trucchetti per posizionarvi nei motori di ricerca.
Fino a poco tempo fa si utilizzavano dei "trucchetti" per posizionare meglio il proprio sito nei motori di ricerca, come per esempio l'inserimento di centinaia di parole chiave con il testo invisibile (stesso colore di sfondo, posizionamento negativo, ecc).
Queste tecniche sono altamente sconsigliate in quanto oggi Google penalizza il sito "truccato", arrivando perfino ad inserirlo in una Black List o bannandolo completamente dai propri archivi.

10. Oddio, lo sfondo musicale no!
Alcuni pensano che l'introduzione di un sottofondo musicale nel proprio sito renda la navigazione più accattivante, ma non è così. Se la musica ha una ragione precisa per esserci (sito a tema musicale o con particolari tematiche o ancora in flash), bene (ma mi raccomando, prevedete sempre un sistema di ON/OFF), altrimenti evitatela completamente, per due motivi:
  1. I file sonori sono tipicamente ‘pesanti’, e richiedono un elevato tempo di scaricamento.
  2. Molti computer non hanno l'audio attivo, e quindi questo 'elemento' risulta inutile.


Consiglio fuori lista: in generale usate il buon senso e il buon gusto. Se una soluzione risulta particolarmente pesante, e porta il visitatore a lunghi tempi di attesa per visualizzare la pagina, evitatela. Se un elemento è troppo chiassoso rispetto al sito, non inseritelo. Create sempre siti accessibili a tutti, senza distinzione di browsers o plugin installati.
Non dovete pensare al vostro sito come al vostro cassetto della scrivania, dove buttare di tutto un po', ma come una bella foto, dove ogni elemento deve occupare il giusto spazio.
Leggi tutto...

lunedì 18 agosto 2008

Come vengono visualizzate le email in html su Outlook 2007

0 commenti
Probabilmente alcuni di voi già sapranno che la nuova versione del famoso programma di posta elettronica della Microsoft si basa sul motore di MS Word per la visualizzazione delle email in formato HTML.
Questo purtroppo implica che chi, come me, realizza newsletter conto terzi in formato HTML, dovrà accettare dei compromessi piuttosto pesanti per realizzare delle email che siano visualizzate correttamente anche su Outlook 2007.

Infatti il nuovo Outlook non supporta alcune caratteristiche chiavi dei CSS riguardanti la formattazione del testo, e impedisce l’uso di immagini di sfondo. Allo stesso modo i form non saranno più supportati: bisognerà trasferire tutte queste funzioni su pagine web linkate all'email.

Ecco le caratteristiche non più supportate:

• filmati flash
• immagini in background
• “alt” tags nelle immagini
• gif animate
• formattazione CSS avanzata
• il supporto all’ accessibilità HTML non è implementato

Tutto ciò obbligherà i designer a tornare al vecchio e superato layout tabellare, onde evitare spiacevoli sorprese di rendering.


Le ragioni della Microsoft sono una maggior sicurezza, derivante dalla completa separazione tra Internet Explorer e Outlook, e la possibilità di una visualizzazione standardizzata, dato che finora Outlook si basava su Word per la creazione di email, mentre usava Internet Explorer per la loro visualizzazione.


Per un'analisi completa vi rimando a questo articolo: http://blog.infomail.it/outlook-2007-e-la-gestione-dellhtml/
Leggi tutto...

sabato 9 agosto 2008

CSS Hacks - soluzioni per i nostri css

0 commenti
La maggior parte dei browser in circolazione non recepisce correttamente tutte le istruzioni CSS. E' quindi spesso necessario ricorrere a degli "hack", dei trucchi, per impedire a questo o quel browser di eseguire una determinata istruzione CSS.

Ci sono diversi tipi di hack possibili, ne esamineremo alcuni in questo articolo.

Commenti condizionali / Conditional comments
Vengono usati per Internet Explorer. La sintassi di un commento condizionale è la seguente:
<!--[if condizione]> HTML o CSS <![endif]-->
dove la condizione può essere:

IE
Qualsiasi versione di Internet Explorer
lt IE version
Versioni precedenti alla versione indicata
lte IE version
Versioni precedenti o uguali alla versione indicata
IE version
Solo la versione indicata
gte IE version
Versioni successive o uguali alla versione indicata
gt IE version
Versioni successive alla versione indicata

Le versioni di Internet Explorer possono essere 5, 5.5, 6 o 7

I commenti condizionali possono essere utilizzati per includere parti di CSS o collegamenti a fogli di stile visibili solo dalla categoria prescelta.

Ad esempio, volendo collegare un foglio di stile visibile solo da IE 6 e versioni precedenti, useremo il codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link href="tutti_i_browser.css" rel="stylesheet" type="text/css">
<!--[if lt IE 7]> <link href="ie_6_e_precedenti.css" rel="stylesheet" type="text/css"> <![endif]-->
</head>
</html>


Selettori
Molti degli hack per CSS hanno a che vedere con i bugs relativi ai selettori. Ovvero, non tutti i browser riconoscono determinati selettori, e quindi è possibile mostrare o nascondere certe regole a determinati browser. Attenzione, i risultati sono testati sui browser più diffusi, e potrebbe esserci qualche discordanza sui browser meno conosciuti. Tutte le soluzioni proposte sono validabili.
IE 6 e precedenti
* html {}
Solo IE 7
*:first-child+html {}
IE 7 e browser moderni
html>body {}
Solo browser moderni (non IE 7)
html>/**/body {}
Opera 9 e precedenti
html:first-child {}
Alcuni di questi selettori funzionano solo se il documento ha un doctype ma nessuna istruzione di processo (inclusa la dichiarazione XML).

Ad esempio, per applicare una particolare larghezza ad un div solo se visualizzato su Internet Explorer 7, dovremmo scrivere:
*:first-child+html #miodiv{width:500px;}

!important
Internet Explorer 6 e precedenti non riconoscono la dicitura !important, e la ignorano se nello stesso foglio di stile appare un'altra dichiarazione della stessa proprietà. Questa caratteristica può essere utilizzata per nascondere alcune proprietà a IE 6 e ai suoi predecessori.

Ecco un esempio:
p {
background: green !important;
background: red; /* IE 6 e precedenti usano questo valore */
}

@import
Internet Explorer 7 e precedenti non supportano la regola @import , e la ignorano completamente. Quindi possiamo creare un foglio di stile esclusivamente per i browser non-IE, e importarla nel nostro documento scrivendo: @import "non-ie.css" all;.

Le future versioni di IE però potrebbero correggere questo bug, quindi prestate attenzione nel suo utilizzo.


Nascondere comandi ad Internet Explorer 5
Nella scrittura di un foglio di stile, è - purtroppo - spesso necessario impostare parametri differenti per IE 6 e il suo predecessore IE 5.

Internet Explorer 5 infatti non interpreta correttamente la larghezza di un elemento, qualora siano presenti margini (margin) o spaziature (padding). Anzichè considerare a parte questi valori, come fanno tutti gli altri browser, li considera inclusi nella larghezza, cosicchè l'elemento risulta più stretto (lo stesso vale per l'altezza).

Sarà quindi necessario scrivere una regola interpretata da tutti i browser e di seguito una regola valida solo per IE 5. Ci viene in aiuto l' invenzione di Tantek Celik, conosciuta come box model hack, e consiste nell'aggiungere al codice 'standard' le due voci voice-family: "\"}\""; voice-family:inherit;:

#header {padding: 10px; border: 1px; width: 150px; voice-family: "\"}\""; voice-family:inherit; width: 100px;}

Con questa sintassi IE5 interpreta tutte le regole elencate prima delle due voci voice-family: "\"}\""; voice-family:inherit;, e ignora tutto ciò che viene dopo.

Oggigiorno, tuttavia, è consigliato sostituire questo hack solo ben più semplice star-html hack, in questo modo:

#header {padding: 10px; border: 1px; width: 100px;}

*html #header {width: 150px; w\idth: 100px;}

Così facendo, IE 6 e IE 5 leggono la regola contenuta all'interno del selettore *html , ma, aggiungendo alla nostra regola w\idth:, facciamo in modo che IE 6 tenga per buona quest'ultima. Il carattere di escape (\) infatti dovrebbe essere ingnorato, ma quando si trova all'interno del nome della proprietà non è ignorato da IE5 e IE5.5 per Windows. Invece fa in modo che questi browser ignorino il carattere successivo, rendendo così illeggibile per loro il nome della proprietà. Importante: il carattere di escape non deve venire direttamente prima di ciascuno dei primi sei caratteri alfabetici, perchè essi hanno significati speciali quando vengono preceduti da un escape. Nello specifico, i caratteri proibiti sono a, b, c, d, e, f. Inoltre, il carattere di escape non deve venire prima della prima lettera, perchè IE5.5 in qualche modo è in grado di ignorare l'escape quando viene per primo.


Nascondere comandi ad Internet Explorer per Mac
Sono pochi ormai gli utenti di Internet Explorer per Mac, in seguito alla decisione di Microsoft di non portare più avanti lo sviluppo di tale versione. Può comunque capitare che un programmatore voglia considerare anche questi utenti, e desideri nascondere alcune regole a tale browser.

La soluzione è piuttosto semplice. E' infatti sufficiente inserire una serie di caratteri prima e dopo il codice. Ecco un esempio:

/* Hack per IE-Mac \*/
#header {height:60px;}
#footer {height:40px;}
/* Fine hack */

IE-Mac ignorerà questi comandi a causa della presenza del backslash (\) prima della fine del commento.


Nascondere comandi a Netscape 4
Netscape 4 presenta una interpretazione delle regole CSS spesso insufficiente. Creare un sito compatibile con questo browser può essere difficile se non impossibile in siti web di una certa complessità. E' quindi possibile, e a volte consigliabile, nascondere completamente il CSS a Netscape, usando la regola @import per collegare il foglio di stile al documento:

<style type="text/css">@import url(stile.css);</style>

In questo modo, Netscape 4 mostrerà una versione del sito priva di stile grafico.


Per un elenco completo degli hacks per CSS, validi e non, vi consiglio una visita al sito Webdevout.

Un articolo sugli hacks e IE 7: http://gabrieleromanato.altervista.org/css/css-hack-ed-ie7/index.html



Leggi tutto...

RenderingMode: un aspetto importante

0 commenti
Forse non tutti sapranno che i browser possono "lavorare" in due modalità: StrictRenderingMode e QuirksRenderingMode.
Questi due metodi interpretano in modo differente le istruzioni CSS.
Nella modalità QuirksRenderingMode, i browsers si comportano come i loro predecessori, o i predecessori dei loro predecessori. Nella modalità StrictRenderingMode, il browser, a seconda della sua versione e di quanto previsto dai suoi programmatori, interpreta le regole css secondo gli standard previsti dal w3c, a volte provocando risultati inaspettati.

Perchè esistono queste due possibilità?
Quando Netscape 4 ed IE 4 hanno iniziato ad implementare il supporto CSS, non rispettavano gli standard del w3c. Già con IE 5 ci furono dei grossi miglioramenti, ma restavano comunque numerosi bugs da correggere.
Per essere sicuri che i lori siti venissero visualizzati correttamente nei vari browser, gli sviluppatori web dovettero creare i loro fogli di stile sulla base della resa su questi browser. Così facendo, però, il loro CSS non rispettava le specifiche del w3c.
Ad un certo punto, però, l'aderenza agli standard divenne importante anche per i creatori dei browser, che cercarono di avvicinarsi alle specifiche del w3c, senza però aderirvi completamente, dato che, se l'avessero fatto, l'effetto su molti siti sarebbe stato disastroso.

La soluzione a questo problema fu permettere ai programmatori web di scegliere se far funzionare il browser in modalità compatibile con le specifiche del w3c (strict mode), o se farlo funzionare come i vecchi browser (quirks mode), e in base a questa scelta, costruire le proprie regole css.

Explorer Mac fu il primo browser a implementare le due modalità, e presto seguirono IE 6, Mozilla/Firefox, Safari, e Opera. IE 5, così come browser più vecchi (ad es. Netscape 4), lavorano solo in quirks mode.

La scelta del metodo da utilizzare richiede un piccolo hack, il 'doctype switching'.
Secondo gli standard, ogni documento HTML/XHTML deve dichiarare un doctype che indichi al browser come interpretare il codice.
Le pagine senza doctype vengono interpretate in quirks mode.
La dichiarazione di un doctype nuovo o sconosciuto fa interpretare la pagina in strict mode.
La semplice presenza del doctype è sufficiente per passare allo strict mode, non è necessario che il documento sia validabile per quel doctype.

Forzare il browser a lavorare in Quirks Mode

Può capitare che, in certi casi, si voglia far lavorare il browser in Quirks Mode. Questo si verifica quasi esclusivamente per la famiglia di Internet Explorer, dato che il rendering dei nostri documenti HTML nelle varie versioni del browser può essere anche molto differente.

Ci sono due semplici modi per forzare ad esempio IE 6 ad interpretare i nostri css come se fosse IE 5:
  1. Inserire un commento prima della dichiarazione del doctype. Il contenuto non è importante, è sufficiente che si tratti di un commento, delimitato dagli appositi tag. Questo hack funziona per tutte le versioni di IE.
    Esempio:
    <!-- commento -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. Inserire una dichiarazione xml prima del doctype. Questo hack funziona per tutte le versioni precedenti a IE 7.
    Esempio:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Quale Rendering Mode sta utilizzando il browser?
Per verificare quale rendering mode è attualmente utilizzato dal browser, è sufficiente scrivere il codice "javascript:alert(document.compatMode);" nella barra degli indirizzi del browser.
Otterremo una alertbox contenente la parola "BackCompat" o "QuirksMode" se il browser è in QuirksRenderingMode, oppure la parola "CSS1Compat", se il browser è in StrictRenderingMode.



Articoli consigliati: http://css-discuss.incutio.com/?page=RenderingMode
http://www.quirksmode.org/css/quirksmode.html
Leggi tutto...

giovedì 7 agosto 2008

Aggiungere uno sfondo in flash ad un elemento html

0 commenti
Volete inserire un elemento html, ad esempio un DIV, sopra ad un filmato flash, e non sapete come fare? E' veramente molto semplice!

Innanzitutto creiamo due div inseriti all'interno di un contenitore:
<div id="contenitore">
<div id="sfondo-flash"> Inserire swf con sfondo trasparente </div>
<div id="contenuto-html"> Il nostro contenuto html </div>
</div>

Quindi creiamo il CSS:
#contenitore{
width: 600px;
height: 400px;
}
#sfondo-flash{
width: 600px;
height: 400px;
position: absolute;
top:0;
left:0;
z-index: 1;
}
#contenuto-html{
position: relative;
z-index: 2;
}

In alternativa è possibile dare position:absolute; anche al div "contenuto-html".

Potete vedere il risultato qui.


NB: a causa di un bug con il flash player, questa soluzione non è valida per utenti Linux.
Leggi tutto...

lunedì 7 aprile 2008

Usare immagini PNG in Internet Explorer 5.5 e 6

6 commenti
Chiunque di voi abbia a che fare con la creazione di siti web, saprà che le immagini png 24-bit sono le uniche che mantegono una adeguata trasparenza, a differenza delle gif che lasciano uno sgradevole alone non trasparente attorno alle ombre o, peggio ancora, appaiono tutte "seghettate" in mancanza di tale alone.

Purtroppo le PNG sono supportate solo dalla versione 7 di Internet Explorer, mentre nelle versioni precedenti vengono riprodotte con uno sfondo azzurrino al posto della trasparenza.

Come sopperire a questo problema?
Ci sono molte soluzioni stilistiche accettabili, come ad esempio creare una gif che abbia un alone dello stesso colore dello sfondo su cui la andremo a posizionare, oppure evitare ombre troppo "sfumate", ma da un po' di tempo c'è anche una soluzione più interessante.
Si tratta di un hack che risolve il problema su IE 5.5 e 6, grazie ad un css, un javascript e una immagine gif trasparente di 1x1 pixel.

Potete scaricare tutti i file necessari, e leggere una guida completa, a questo link: http://www.zod.it/index.php?option=com_content&task=view&id=12&Itemid=27

Buon lavoro!


Aggiornamento Luglio 2008
Per un sito che stavo realizzando, ho voluto testare uno di questi fix per png. In particolare ho voluto provare la soluzione proposta da zod.it ed anche questa soluzione (ecco la pagina di esempio). Purtroppo in entrambi i casi, la resa grafica era perfetta anche in IE6, ma ho notato che, lasciando aperta la pagina web in cui era presente il fix, senza muovere il mouse per qualche minuto, tutto il monitor cominciava a tremare e sfarfallare in modo terribilmente fastidioso, e non c'era verso di farlo smettere, neanche uscendo dalla pagina.
Questo problema mi era già stato segnalato da un collega, quindi sconsiglio a tutti di usare questi fix, finchè non si capisce qual è l'origine del bug.
Vedo ora che zod.it segnala anche questa soluzione, utilizzando jQuery: http://jquery.andreaseberhard.de/pngFix/
Sinceramente non l'ho ancora testata... Vi farò sapere!
Leggi tutto...

Un utile strumento per programmatori, il Byte Converter

0 commenti
Oggi vi segnalo il Byte Converter, letteralmente un convertitore di byte... In cosa? In Kilobyte, Megabyte e Gigabyte, naturalmente!
L'ho trovato molto utile in certe applicazioni, dove magari conoscevo la dimensione in Kilobyte di un file, ma mi serviva sapere esattamente la conversione in Byte.
Certo, esistono le calcolatrici, ma questo tool è veramente semplice ed immediato.

Il link: http://webdeveloper.earthweb.com/.../byteconverter.htm
Leggi tutto...

venerdì 8 febbraio 2008

Inserire Google Maps nel proprio sito in 5 minuti

55 commenti
ATTENZIONE, QUESTO POST E' OBSOLETO. A BREVE NUOVE INDICAZIONI. (07/11/2010)

Qualche giorno fa vi ho parlato di dove è possibile reperire le coordinate esatte per inserire una mappa di Google nel vostro sito.
Oggi invece vi voglio spiegare come inserire una mappa partendo da zero.

PRIMO STEP - REGISTRATI PER AVERE LA KEY
Per prima cosa è necessario avere una key collegata al proprio sito. Per farlo è sufficiente andare qui: http://code.google.com/apis/maps/signup.html , inserire il proprio dominio, e avremo subito sia la chiave sia un esempio di come inserire la mappa nel nostro sito.

SECONDO STEP - INSERIAMO IL CODICE NELL'HEAD DELLA NOSTRA PAGINA
Apriamo la nostra pagina web, e nel tag HEAD inseriamo il seguente codice:
<script src="http://maps.google.com/maps?file=api&v=2&key=xxxxx" type="text/javascript"></script>
Dove "xxxxx" sarà la chiave che ci ha appena dato Google.
Subito sotto inseriamo il codice:
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
}
}
</script>

Dove i "numeri" all'interno delle parentesi saranno le coordinate del nostro indirizzo, che abbiamo calcolato grazie a www.addressfix.com, e 13 sarà il livello di zoom (0 è il minimo e 17 è il massimo).

TERZO STEP - INSERIAMO UN MARKER
A questo punto potremmo forse voler inserire un "segnalino" che indichi esattamente il nostro indirizzo sulla mappa.
Per fare ciò, aggiungiamo queste righe subito sotto a
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

prima della chiusura delle parentesi grafe.
Ecco il codice:

// Crea un nuovo marker nel punto specificato con una descrizione HTML associata
function createMarker(point, description) {
var marker = new GMarker(point);
GEvent.addListener(marker, "mouseover", function() {
marker.openInfoWindowHtml(description);
});
return marker;
}
// Aggiungi il marker alla mappa
map.addOverlay(
createMarker(new GLatLng(37.4419, -122.1419), "La mia casa<br />Via Nazionale, 1<br />00000 Roma")
);

Con la prima funzione abbiamo creato la variabile marker, che è una nuova istanza dell'oggetto GMarker. Inoltre le abbiamo associato un evento: al passaggio del mouse si apre una "nuvoletta" con una breve descrizione, che può contenere anche tag HTML.
Con la seconda funzione aggiungiamo il marker creato alla mappa, passandogli anche stavolta le coordinate corrette, e di seguito il messaggio HTML che vogliamo visualizzare nella nuvoletta.

QUARTO STEP - IL BODY
Per finire modifichiamo così il tag BODY della nostra pagina:
<body onload="load()" onunload="GUnload()">


Finito!!!
Semplice vero?


Aggiornamenti dicembre 2008
  1. Attenzione! Ricordate sempre di inserire nella vostra pagina un div con id "map", nel quale verrà visualizzata la mappa di Google.
    <div id="map"> </div> (preziosa segnalazione di Paolo)
  2. LINK IMPORTANTI
    - esempi ufficiali
    - demo ufficiali
    - documentazione ufficiale
    - guida ufficiale per gli sviluppatori
    - guida completa
Leggi tutto...

martedì 29 gennaio 2008

Coordinate per Google Maps API

3 commenti
Mi sono cimentata proprio nei giorni scorsi con le API Google Maps, poichè era mia intenzione inserire una mappa di Google nel mio sito.

Ho seguito la guida ufficiale, e per ricavare le coordinate suggerivano di cercare l'indirizzo desiderato su maps.google.it, cliccare su "Collegamento a questa pagina", copiare quindi il codice per l'iframe, e ricavarsi così le coordinate, associate al parametro ll.
Io ci ho provato, ma le coordinate non erano per nulla corrette. La mappa era "scentrata" di qualche centinaio di metri, cosa assolutamente non accettabile.

Ho trovato allora questo interessante sito, www.addressfix.com, che fornisce con grande precisione le coordinate da usare, e in questo modo ho risolto il problema!

Ve lo consiglio!
Leggi tutto...

lunedì 7 gennaio 2008

CSS: Simulare i frame

4 commenti
Per un sito che sto realizzando, si è presentata la necessità di creare una struttura con una parte fissa (il menu), e una parte "scrollabile" (il contenuto), senza ricorrere all'uso dei frame (in questo caso indubbiamente utili!). Mi è venuto in aiuto questo articolo, realizzato dal L. A. U. (Laboratorio di Accessibilità e User Innovation), che spiega come sfruttare i vantaggi dei frame senza utilizzare un frameset, ovvero creando, grazie alle istruzioni CSS, dei div "fissi" sulla pagina, che sembrino appunto frame.


IL PROBLEMA
Avere un div fisso sulla pagina (div id="menu"), con una soluzione funzionante su tutti i browser e utilizzando solo i CSS.


LA SOLUZIONE
1^. Creiamo innanzitutto la struttura html:
<body>
<div id="menu">
voce 1
voce 2
voce 3
</div>
<div id="content">
...il nostro contenuto...
</div>
</body>

2^. Ora creiamo il css.
Per i browser moderni (Firefox 2+, Opera 9+, Safari 3+, IE 7+) sarebbe sufficiente usare la proprietà position:fixed;, che risolverebbe completamente tutti i nostri problemi.
Purtroppo, però, gli altri browser (ad esempio IE 6 e precedenti) non recepiscono correttamente questa istruzione, ma la interpretano come position:static;, che non produce alcun risultato sulla nostra pagina.

Dobbiamo quindi ricorrere ad un piccolo trucco.
Diamo un posizionamento assoluto al nostro div fisso, e poi rendiamo l'istruzione fixed interpretabile solo per i browser moderni:
#menu { position:absolute; top:0; left:0; height:100%; width:250px; background-color:#00FF00;}
body>#left {
position: fixed;
}

E diamo al nostro div di contenuto un padding pari alla larghezza del menu:
#content {
padding-left:250px;
width:500px;
background:#0000FF;
}

Questa soluzione funziona correttamente sui browser moderni, ma non su IE 6, che visualizza il div con posizionamento assoluto. Certo è meglio di niente, ma non è sufficiente.
Dobbiamo quindi inserire un commento condizionale, con del codice visibile solo da IE6 e precedenti, e forzare il browser ad operare in Quirksmode.

Il commento condizionale sarà il seguente:
<!--[if lte IE 6]>
<style type="text/css">
body
{
overflow-y: hidden;
}
#content
{
height: 100%;
width: 100%;
overflow: auto;
}
</style>
<![endif]-->

Il commento condizionale non fa altro che forzare l'altezza del nostro div di contenuto al 100% della finestra del browser, e quindi mostrare la barra di scorrimento verticale per il contenuto eccedente tale altezza.

Per forzare il browser ad operare in modalità Quirksmode, invece, è sufficiente inserire un commento prima della dichiarazione del DOCTYPE. Questa soluzione presenta però un inconveniente, in quanto inserendo un commento, forziamo anche IE7 ad operare in Quirksmode, quando in realtà il browser già funziona correttamente.
Ci sono quindi due possibilità: estendiamo il commento condizionale a IE7 (<!--[if lte IE 7]>), oppure inseriamo prima del DOCTYPE la dichiarazione XML (<?xml version="1.0" encoding="utf-8"?>). Attenzione, però. Utilizzando la dichiarazione in un file .php, questo smette di funzionare (<? è anche il tag di apertura del php). Consiglio quindi la prima soluzione.

Il nostro codice finale:
<!-- comment -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
#menu { position:absolute; top:0; left:0; height:100%; width:250px; background-color:#00FF00;}
body>#left {
position: fixed;
}
#content {
padding-left:250px;
width:500px;
background:#0000FF;
}
</style>
<!--[if lte IE 7]>
<style type="text/css">
body
{
overflow-y: hidden;
}
#content
{
height: 100%;
width: 100%;
overflow: auto;
}
</style>
<![endif]-->
</head>
<body>
<div id="menu">
voce 1
voce 2
voce 3
</div>
<div id="content">
...il nostro contenuto...
</div>
</body>
</html>



Ritengo che questo sito sia fonte di grande ispirazione per chi vuole creare siti con contenuti pienamente accessibili, e voglia rispettare in pieno quanto previsto dalla legislazione in materia.
Leggi tutto...

Button o input?

0 commenti
Un interessante articolo di Aaron Gustafson sull'utilizzo del tag
Leggi tutto...