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.
lunedì 12 settembre 2011
@font-face kits: perchè non usare quelli di Fontsquirrel.com?
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.
giovedì 18 agosto 2011
Pageflip, pdf sfogliabili, cataloghi sfogliabili online: alcune soluzioni
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
martedì 9 agosto 2011
Greenpit: un altro sito indispensabile per designers e developers
All'interno potrete trovare articoli e recensioni su scripts javascript, xhtml & css, e molto altro.
Da leggere!
25 menu a tendina / dropdown a più livelli
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 ;)
giovedì 4 agosto 2011
Clear dei float, usate ancora il div vuoto?
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!
I 10 migliori hack CSS
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!
domenica 7 novembre 2010
Letture consigliate per gli sviluppatori e i progettisti web
- 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 :)
Il nuovo metodo per il clear dei float
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:
Tutte le spiegazioni a questo indirizzo: http://perishablepress.com/press/2009/12/06/new-clearfix-hack//* 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 */
lunedì 19 gennaio 2009
sIFR, ovvero come usare qualsiasi carattere nel web
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:
- Il browser carica una normale pagina (X)HTML.
- 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.
- 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.
- 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.
- 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.
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
lunedì 1 dicembre 2008
Le regole d'oro per creare un buon sito web
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.
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:
- I file sonori sono tipicamente ‘pesanti’, e richiedono un elevato tempo di scaricamento.
- 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.
lunedì 18 agosto 2008
Come vengono visualizzate le email in html su Outlook 2007
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/
sabato 9 agosto 2008
CSS Hacks - soluzioni per i nostri 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:
IElt IE versionlte IE versionIE versiongte IE versiongt IE versionLe versioni di Internet Explorer possono essere 5, 5.5, 6 o 7
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 {}
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;}
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;:
Con questa sintassi IE5 interpreta tutte le regole elencate prima delle due voci
#header {padding: 10px; border: 1px; width: 150px; voice-family: "\"}\""; voice-family:inherit; width: 100px;}
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:
Così facendo, IE 6 e IE 5 leggono la regola contenuta all'interno del selettore
#header {padding: 10px; border: 1px; width: 100px;}
*html #header {width: 150px; w\idth: 100px;}
*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
RenderingMode: un aspetto importante
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:
- 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"> - 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
giovedì 7 agosto 2008
Aggiungere uno sfondo in flash ad un elemento html
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.
lunedì 7 aprile 2008
Usare immagini PNG in Internet Explorer 5.5 e 6
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!
Un utile strumento per programmatori, il Byte Converter
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
venerdì 8 febbraio 2008
Inserire Google Maps nel proprio sito in 5 minuti
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
- 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) - LINK IMPORTANTI
- esempi ufficiali
- demo ufficiali
- documentazione ufficiale
- guida ufficiale per gli sviluppatori
- guida completa
martedì 29 gennaio 2008
Coordinate per Google Maps API
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!
lunedì 7 gennaio 2008
CSS: Simulare i 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.