BigThink

Uno script jQuery per risolvere i problemi del Box Model

Internet Explorer HackUno dei principali problemi di compatibilità tra browser è l’interpretazione del cosiddetto box model.

Secondo gli standard dell W3C, la larghezza (width) o l’altezza (height) assegnata ad un box si riferisce solo all’area di contenuto del box. Il padding, i bordi ed i margini vengono sommati in un secondo momento per arrivare alla larghezza totale del box.

Il problema è che Internet Explorer — tanto per cambiare — non segue gli standard e, nelle versioni precedenti alla 6, usa un box model differente che presenta un bug. In questo modello, il padding e i bordi vengono considerati come parte di ogni “width” o “height” assegnata.

In assenza di bordi e padding, i due modelli concordano, tuttavia, se un box ha una larghezza assegnata e gli vengono aggiunti bordi e padding, il box model standard fa si che la larghezza complessiva del box aumenti, mentre nel modello di Internet Explorer l’area di contenuto comprende tutte le misure.

Questo comporta non pochi problemi nella creazione di layout crossbrowser.

Box Model

Le soluzioni a questo problema sono molteplici:

Tuttavia, quello che voglio presentarvi oggi è un metodo del tutto non intrusivo ed automatico: uno script in jQuery che risolve da solo tutti i problemi. Si tratta di jquery.fixBoxModel.js, scritto da Alessandro Coscia.

Installarlo è semplicissimo: scaricate e uploadate sul vostro server i seguenti file:

Inserite quindi questo codice tra i tag <head> della vostra pagina:

<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/jquery.fixBoxModel.js" type="text/javascript"></script>
<script type="text/javascript">
var $j = jQuery.noConflict();
$j('document').ready(function () {
    $j('div').fixBoxModel();
});
</script>

Fatto ciò, non dovrete più preoccuparvi di alcun problema di compatibilità del box model.
Comodo, no?

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

PNG trasparenti su IE6

PNG trasparenti su IE6

Ormai si sa, il browser che peggio supporta gli standard è sempre lui, Internet Explorer. Ancora ancora la versione 7, ma la 6 è davvero scandalosa. Oltre ai vari problemi legati alla visualizzazione dei CSS e via dicendo, è noto il bug delle PNG trasparenti. IE6 si rifiuta semplicemente di mostrarci la trasparenza, sostituendola ...
Come creare Dialog Box nelle tue Applicazioni Facebook IFrame

Come creare Dialog Box nelle tue Applicazioni Facebook IFrame

Uno degli aspetti positivi nello sviluppare Applicazioni Facebook FBML è che puoi usare FBJS, che mette a disposizione alcuni oggetti molto comodi come le Dialog. Grazie ad esse possiamo far comparire i classici popup in stile Facebook, con una riga di codice. Passando, però, a sviluppare Applicazioni IFRAME — e pare che Facebook stia ...
Centrare un div dentro un altro div

Centrare un div dentro un altro div

Visto che — statistiche alla mano — i miei post sui CSS sembrano essere apprezzati, continuo su questa strada. Vediamo oggi come centrare gli elementi delle nostre pagine, in particolare i div. Com'è noto, per centrare un testo rispetto al suo contenitore, è sufficiente un semplice text-align:center. Cosa che non funziona con i div. Bisogna infatti ...
CSS trick: div contenitore in full-height

CSS trick: div contenitore in full-height

Spesso abbiamo la necessità che il div contenitore del nostro sito si estenda per tutta l'altezza della pagina web, anche se il contenuto è minimo. Come fare? Per questo esempio, è sufficiente il solo div "container" con del testo: <div id="container"> <p>Testo</p> </div> Aggiungiamo gli stili base e coloriamo il div per visualizzarlo nel nostro esempio: #container{ height:100%; background:red; } Tuttavia non basta ...
Mostrare contenuti riservati in cambio di uno Share su Facebook

Mostrare contenuti riservati in cambio di uno Share su Facebook

Tempo fa ti ho spiegato come mostrare un contenuto riservato sulla tua Pagina Facebook solamente a chi diventa fan. Puoi sfruttare una dinamica simile anche sulle pagine del tuo sito, mostrando dei contenuti riservati solamente a chi condivide in Bacheca un post. Vediamo insieme come fare! 1. Crea l'Applicazione e implementa la Javascript SDK Per prima cosa ...

2 Commenti

  1. /script>

    var $j = jQuery.noConflict();
    $j(‘document’).ready(function(){
    $j(“#generale”).ScrollNews({
    inizialize : ‘true’,
    size : ’130px’,
    timeout : 2500,
    speed : ‘fast’,
    direction : ‘down’,
    onmouseover : ‘stop’
    });
    });

    /* */
    function MM_goToURL() { //v3.0
    var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
    for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    }

    nonostante cambio la variante $ gli scirpt non coesistono..helpppppppppppppp

    16 agosto 2010, 20:56

1 Citazioni