<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar/16734928?origin\x3dhttp://sid05.blogspot.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

CSS tutorial: giochiamo con i box e la proprietà overflow:hidden 08/04/08

CSS tutorial

Visto che qualcuno mi ha fatto delle domande rispetto ai box utilizzati per il mio lifestream, colgo l' occasione per descrivere alcune proprietà dei fogli di stile e giocare un po' con i box, le immagini e le trasparenze. Quello che ci serve è un immagine e poche regole CSS...

» continua

Il nostro obiettivo è quello di mostrare un box di dimensioni stabilite e che contenga un' immagine (di dimensioni variabili) ed un breve testo descrittivo, questo in pratica sarà il nostro codice HTML:

<div class="box">
<img src="lamiafoto.jpg"/>
<p>Breve testo descrittivo</p>
</div>

Ho utilizzato questa foto di Dingo (diciamo un mio assistente) ed il risultato finale sarà questo:

Dingo

Questo è un breve testo descrittivo

La prima cosa da fare è assegnare la proprietà overflow:hidden alla classe applicata al contenitore, stabilire le dimensioni del box e applicare il valore relative alla proprietà position. Vediamo il foglio di stile:

<style type="text/css">
div.box{
margin: 5px;
overflow: hidden;
display: block;
position: relative;
height: 150px;
width: 200px;
}
</style>

Caricando la mia immagine all' interno del box ecco il risultato:

Dingo

Come potete vedere l' immagine non è centrata; viene caricata nel box partendo dal vertice superiore sinistro, per risolvere parzialmente questo problema (conoscendo le dimensioni esatte il problema si risolve integralmente) possiamo posizionare in maniera assoluta l' immagine usando valori negativi, scorrendo cioè verso sinistra e verso l' alto. Nel mio caso le dimensioni le conosco quindi il lavoro sarà assai più semplice, aggiungete questo selettore al foglio di stile creato in precedenza:

div.box img{
position: absolute;
left: -130px;
top: -65px;
}

Ed ecco il risultato con il soggetto centrato perfettamente:

Dingo

Adesso dobbiamo inserire il testo allo stesso modo, aggiungendo anche uno sfondo trasparente. Anche qui posizioniamo il testo in maniera assoluta e applichiamo la trasparenza allo sfondo, aggiungete questa ultima parte al foglio di stile:

div.box p{
margin: 0px;
padding: 10px;
position: absolute;
left: 10px;
top: 10px;
background-color: #000;
color:#FFF;
filter: alpha(opacity=70);
opacity: 0.7;
}

Applicando queste tre regole al codice HTML presente all' inizio di questo tutorial avrete il seguente risultato:

Dingo

Questo è un breve testo descrittivo

Se volete inserire più box in linea basterà aggiungere alla classe box la proprietà float:left... spero di avere risposto :)

Etichette: , ,

Una breve anteprima di HTML 5 06/12/07

html 5

Sembrerà strano ma, tra aggiornamenti e strade parallele, il codice HTML (4) ha quasi 10 anni; considerando i ritmi vertiginosi che muovono la rete è quantomeno curioso... a questo proposito segnalo volentieri il post di A List Apart che illustra alcune delle caratteristiche della nuova specifica HTML, la 5 appunto.

L' articolo divide le novità in tre categorie, la struttura, i nuovi elementi per l' audio/video e la rappresentazione del documento...

» continua

La prima cosa da sottolineare è che ancora si tratta di un progetto aperto, suscettibile a modifiche e comunque non definitivo; qui trovate la pagina del W3C dedicata ad HTML 5.

La struttura prevede una serie di nuovi tag che andranno a sostituire i normali contenitori <div> e le rispettive classi. Vediamo un esempio pratico, una semplice pagina a due colonne come la scriviamo adesso:

<div id="header">...</div>
<div id="navigazione">...</div>
<div id="contenuto">
<div class="post">...</div>
<div class="post">...</div>
</div>
<div id="sidebar">...</div>
<div id="footer">...</div>

Come vedete la struttura è definita dalle classi e gli id applicati ai contenitori <div>; anche se valido a livello semantico (le indicazioni su cosa contengono i generici contenitori sono chiare) la nuova specifica vuole renderlo palese.

Ecco infatti come potremo scrivere lo stesso documento utilizzando HTML 5:

<header>...</header>
<nav>...</nav>
<article>
<section>...</section>
<section>...</section>
</article>
<aside>...</aside>
<footer>...</footer>

Di cosa si tratta si intuisce, ogni elemento "dice" che cosa contiene...

Sommariamente possiamo dire lo stesso delle novità introdotte per i file multimediali (audio/video); ecco un semplice esempio di codice HTML 5 con il quale embeddare un video nella pagina:

<video src="video.ogv" controls poster="poster.jpg"
width="320" height="240">
<a href="video.ogv">Download movie</a>
</video>

Anche qui poco da dire, l' attributo poster è utilizzato per mostrare un immagine prima che il video sia disponibile (ed è opzionale). L' altro elemento disponibile è <audio> e come dice la parola stessa si occupa di...

Su questo aspetto però vi consiglio vivamente un approfondimento in quanto esistono numerosi parametri e una serie di API che permetteranno il massimo controllo (e personalizzazione), sia agli sviluppatori che ai webdesigner.

L' articolo si conclude con la parte più tecnica, relativa alla rappresentazione del documento; come spunto indico solo una maggiore vicinanza della nuova specifica alla formattazione XML. Diversamente dalle versioni precedenti d' ora in avanti HTML sarà definito in termini di DOM e non rispetto alla sua sintassi; questo vuol dire, a grandi linee, che il linguaggio si definisce da solo...

Riporto ancora l' articolo originale e se volete approfondire date un' occhiata alle differenze rispetto ad HTML 4.

Etichette: ,

I commenti nel post con un iframe 21/11/07

La notizia, assolutamente poco importante, è che ho inserito i commenti "in linea" nel blog; in pratica carico la pagina dei commenti di Haloscan dentro ad un iframe... piuttosto banale come operazione e proprio per questo mi chiedo perchè non l' ho fatto prima.

Ora vorrei sapere se la cosa può funzionare; provate a commentare e fatemi sapere... è migliorata la vostra user experience?

ps. mi date una dritta su come rapportare l' altezza del iframe con quella della pagina che carica..?

Etichette: , ,

New Blogger: post espandibili con i CSS 16/11/07

Blogger tutorial

Viste le richieste riguardo ai post espandibili con la nuova versione di Blogger, ho deciso di fornire un' alternativa interamente realizzata con (DUE) regole CSS; si tratta dello stesso metodo che utilizzo nel mio blog (che ancora "gira" con la vecchia versione) e che rende possibile inserire il link "continua a leggere" se e solo se lo vogliamo inserire...

» continua

Naturalmente il metodo va adattato alle nuove features di Blogger ma, alla fine, basta capire dove inserire le due regolette ed il gioco è fatto.

Anche in questo caso l' unica difficoltà è quella di trovare le righe giuste del nostro template; entriamo quindi nel nostro Layout (o Modello) e selezioniamo la voce modifica HTML:

Step 1

Quindi spuntiamo Espandi i modelli widget e scorriamo la pagina fino alla parte che ci interessa evidenziata sotto:

step 2

Praticamente dobbiamo inserire le regole nella parte di codice che indica la visualizzazione dei singoli post; il codice da "rintracciare" è questo:

<b:if cond='data:blog.pageType == "item"'>
<p>:<data:post.body/></p>
<b:else/>
<p>:<data:post.body/></p>

Dobbiamo aggiungere qui il nostro stile, in questo modo sarà "valido" solo per la visualizzazione dei singoli post. Questo è il codice da inserire subito sotto la prima riga (semplicemente, andate a capo senza cancellare niente):

<style>
div.fullpost {display:block;}
span.espandi {display:none;}
</style>

Ecco lo screenshot del risultato:

step 3

Ora dobbiamo inserire lo stesso codice invertendo i valori; in questo modo la visualizzazione in home e negli archivi escluderà la seconda parte di post e includerà il link "continua". Subito sotto la riga <b:else/> inseriamo il seguente codice:

<style>
div.fullpost {display:none;}
span.espandi {display:block;}
</style>

Bene, abbiamo "rovesciato" i valori delle due classi (espandi e fullpost) e terminato le modifiche del template. Salviamo quindi il modello.

Passiamo adesso alla formattazione; in pratica questo passaggio sarebbe opzionale; potremmo semplicemente scrivere il nostro nuovo post e inserire le due classi "a mano" ma questo richiederebbe ogni volta la stessa operazione, lo può fare tranquillamente Blogger per noi.

Andiamo alla voce Impostazioni e quindi su Formattazione:

step 4

Scorriamo la pagina fino all' ultima voce, Modello Post:

Nell' area di testo inserite il seguente codice HTML:

<p>Testo prima parte</p><p><span class="espandi"><a href="http://nomeblog.blogspot.com/2007/06/titolopagina.html#tutto">» continua</a></span></p><div class="fullpost"%gt;<a name="tutto"></a><p>Testo seconda parte</p></div>

Avete terminato; a questo punto avrete il vostro editor pronto per l' utilizzo e formattato, se non vorrete inserire il link "continua" basterà cancellare tutto e scrivere il post normalmente.

Segnalo che dovrete inserire il link dei singoli post manualmente, questo perchè non è possibile inserire i tag di Blogger (e di nessun altro linguaggio server side); poco male, ricordate che Blogger inserisce nell' URL un trattino al posto dello spazio, non inserisce lettere accentate o punteggiatura e che il nome del file è limitato a non più di 30 caratteri (mi pare)... per sicurezza comunque controllate sempre ;)

Etichette: , , , ,

Easy Cchart: HTML+CSS charts visualization tool 27/10/07

Ok il titolo è piuttosto generico, lasciatemi spiegare. Easy Cchart è un file CSS che, una volta importato in una pagina web o in un template, rende semplicissimo inserire i risultati di una classifica o un sondaggio nella pagina stessa (nei post di un blog ad esempio).

Date un' occhiata che ci tengo...

» continua

L' idea mi è venuta con il simpatico test religioso al quale nemmeno io sono scampato... leggendone su altri blog ho notato come la grande maggioranza inserisse i risultati in una lista; più che corretto del resto. Bene, volendo fare il "grande" ho deciso di personalizzare queste liste, in modo da creare un vero e proprio grafico a barre che mostrasse le percentuali. Il risultato è una specie di framework (in realtà un unico file CSS) con molte opzioni a disposizione...

Trovate tutto qui. Potete importare il file CSS nel vostro template o scaricarvi il pacchetto (ZIP). Naturalmente sono molto gradite le vostre impressioni (moltissimo gradite sui testi in inglese ^-^).

Fatemi sapere e nel frattempo questo è solo un esempio:

La mia religione è:
agnosticismo 85%
paganesimo 70%
buddismo 65%
induismo 60%
ateismo 60%
satanismo 55%
islam 50%
cristianesimo 45%
paranormale 45%
confucianesimo 45%
ebraismo 10%

Beh, il test è quello che è ma la forma assunta dai risultati mi pare carina... che ne dite?

Etichette: , , , ,

La linea assassina: HTML e CSS per distruggere IE6 06/09/07

Utilizzate Internet Explorer 6 e lo volete mandare in crash? Un blogger giapponese ha trovato una semplice linea di codice CSS e HTML che se ne prende cura. Questo è il codice:

<style>*{position:relative}</style><table><input></table>

Se proprio lo volete fare accomodatevi, ma non dite che non vi avevo avvisato... con Firefox, Opera e Safari nessun problema (e IE7 ?), la pagina mostra correttamente il campo, ma con IE 6 provoca un errore fatale (via | immike).

Etichette: , , ,

CSS tutorial: sostituire il testo con un' immagine 19/08/07

CSS tutorial

Ho deciso di pubblicare un po' di tutorial di base relativi ai fogli di stile a cascata (CSS), diciamo una rubrica del fine settimana che spero possa tornare utile (fatemi sapere). Iniziamo dalla testa e vediamo come sostituire il titolo del blog con un' immagine...

» continua

Esistono svariati metodi per sostituire il testo con un immagine, in questo caso voglio descrivere il più semplice; niente JavaScript ma soltanto HTML e CSS... inutile farla troppo lunga, ecco di seguito gli esempi di codice, in coda al post trovate alcune considerazioni ed un paio di note.

Questo è il codice CSS:

#immagine-testo {
position: relative;
height: 40px;
width: 400px;
}
#immagine-testo span {
background-image: url(replacement.jpg);
background-repeat: no-repeat;
position: absolute;
height: 100%;
width: 100%;
}

Questo l' HTML:

<h2 id="immagine-testo" title="immagine al posto del testo"><span></span>Immagine al posto del testo</h2>

Questo il risultato:

image replacement

Considerazioni e note

questo metodo garantisce la massima compatibilità (nel caso di browser con immagini disattivate ad esempio) ma necessita di un tag span vuoto e non permette l' utilizzo di immagini trasparenti... infatti il testo rimane sotto l' immagine e nel caso di una PNG trasparente questo sarebbe il risultato:

image replacement

Una serie di alternative le trovate in questo "storico" post di Dave Shea.


Etichette: , ,


Ultimi commenti