Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    [Pillola] FabClearing, un metodo crossbrowser alternativo per il clearing dei float

    [Pillola] Un nuovo metodo crossbrowser per il clearing dei float

    La mia prima pillola nel forum CSS

    Come da titolo credo (a ragione, dopo aver fatto un numero consistente di prove) di aver trovato un nuovo metodo che consente di ottenere il clearing dei blocchi float sulla falsariga del metodo denominato easyclearing (http://positioniseverything.net/easyclearing.html)

    Tale metodo consente di ottenere il clearing senza l'uso di markup strutturale usando un blocco che racchiuda i float, ma dopo averlo usato per diversi progetti ho riscontrato alcuni limiti:

    - Fa ricorso allo "star hack" (non più supportato da IE7)
    - Ricorre ad un hack sui commenti per garantire la compatibilità con IE per Mac (trascurabile la percentuale degli utenti con questo browser)
    - Non funziona perfettamente con Opera a mio parere in quanto - dopo molte prove effettuate - il div che racchiude il/i float presenta un anomalo margine inferiore di 4pixel. Inoltre non sembra funzionare con regolarità su Opera 9 (uscito due giorni fa)

    Da qui l'esigenza di cercare un nuovo metodo
    - privo di hack
    - che tenesse conto dei maggiori (e per quanto possibile minori a parte IE per Mac) browser in circolazione attualmente e se possibile già pronto per IE7.
    - che non ricorresse a markup strutturale a tal scopo

    Dopo qualche prova sono giunto a questa soluzione sulla falsa riga dell'easyclearing (che ho chiamato FabClearing... ) di cui riporto un esempio minimale in XHTML strict 1.0:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <meta http-equiv="Author" 
              content="Fabrizio Calderan, http://www.fabriziocalderan.it/" />
            
            <title>FabClearing</title>       
            
            <style type="text/css">
            /* <![CDATA[ */
    
                html, body {
                    margin		: 0;
                    padding		: 0;
                }        
                
                
                /***  FabClearing ***/
    
                .cleared:after {
                    display		: block; 
                    visibility  	: hidden;
                    content		: "."; 
                    height		: 0; 
                    clear           : both;
                }
                
                .cleared {
                    clear           : both; /* per Gecko */
                    height		: 1%; /* per IE */
                }
    
    
                /*** ***/
                
            /* ]]> */
            </style>
            
            
        </head>
    
    <body>
    
        <div class="cleared">
            <div style="float: left; border:1px #ccc solid; width: 150px; height: 50px;">
                Blocco con float left
            </div>
            <div style="float: left; border:1px #ccc solid; width: 150px; height: 50px;">
                Blocco con float left
            </div>
        </div>
        Il test è superato se questa scritta appare al di sotto dei due blocchi float e se
    
        - evidenziando questa frase - la selezione appare adiacente al bordo inferiore dei due blocchi.
    </body>
    
    </html>

    Tale soluzione funziona (per prova diretta) con i maggiori browser quali
    - Firefox 1.5 (Win32, Mac)
    - IE 6 (Win32)
    - Opera 9 (Win32)
    - Netscape 7.2 (Win32)
    - Safari 2.0.3 (Mac)

    Per prova indiretta (usando browsershots http://www.browsershots.org/):
    - IE 7 beta
    - Opera 8.5
    - Galeon 1.3.20
    - Epiphany 1.4.8
    (le prove effettuate sono visibili su http://browsershots.org/website/1174657/)


    Tutte le prove generano un comportamento identico tra questi browser. Non ho ancora riscontri per ora del funzionamento su IE5, IE 5.5 e IE 5.2 per Mac.

    Per ciò che riguarda il funzionamento, è sufficiente racchiudere i blocchi float all'interno di un div contenitore a cui si deve dare classe 'cleared'. I blocchi flottati all'interno devono avere almeno una dimensione orizzontale definita (come nell'esempio).

    Se volete potete utilizzare il thread per segnalazioni su malfunzionamenti (anche se spero non ce ne siano, ma non si può mai dire) con altri browser da quelli sopraelencati oppure per riportare i risultati delle prove sui browser che mancano all'appello. (sono gradite delle screenshot naturalmente


    Spero possa essere utile.
    -Fab-



    Edit: si vedano i post più recenti di questa discussione

    Keywords: clear clearing float easyclearing opera hack fabclearing
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  2. #2

  3. #3
    Usata anche da Rachel Andrew su http://www.edgeofmyseat.com/


    .cleared:after {
    display: block;
    visibility : hidden;
    content: ".";
    height: 0;
    clear : both;
    }

    .cleared {
    clear : both; /* per Gecko */
    height: 1%; /* per IE */
    }
    Tecnicamente è la combinazione di due hack: il primo serve a forzare un browser compliant ad includere i float nel contenitore come fa (scorrettamente) IE. Il secondo è un Holly Hack modificato, privo cioè del selettore universale e dell'elemento html. http://gabrieleromanato.altervista.o...one-di-ie-win/ dove è illustrato l'Holly Hack. il problema potrebbe nascere con IE7, che non si berrà più il secondo hack e vedrà il contenuto generato del primo dello pseudo-elemento :after.

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da thomas_anderson
    il problema potrebbe nascere con IE7, che non si berrà più il secondo hack e vedrà il contenuto generato del primo dello pseudo-elemento :after.
    Secondo browsershots il funzionamento sembra corretto anche su IE7... almeno a livello teorico visto che non si può esserne sicuri: però la screenshot che ho linkato nel primo post fa ben sperare

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Aggiorno questa discussione poichè ho appena verificato che, sia con IE 5 SP2 che con IE5.5 SP2, il clearing viene ancora eseguito correttamente

    Per testare la compatibilità ho utilizzato i browser standalone trovati su
    http://browsers.evolt.org/


    Queste le stringhe restituite con navigator.appVersion:
    IE5.01 SP2 : appVersion: 4.0 (compatible; MSIE 5.01; Windows NT 5.0; SV1)
    IE5.5 SP2 : appVersion: 4.0 (compatible; MSIE 5.5; Windows NT 5.1; SV1)


    Ricapitolando la lista delle compatibilità aggiornate è ora la seguente

    - Firefox 1.5 (Win32, Mac)
    - IE 5.01 SP2 | IE 5.5 SP2 | IE 6 | IE 7 Beta (Win32)
    - Opera 8.5, Opera 9 (Win32)
    - Netscape 7.2 (Win32)
    - Safari 2.0.3 (Mac)
    - Galeon 1.3.20
    - Epiphany 1.4.8
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Aggiornamento

    Il metodo rimane funzionante anche su Internet Explorer 7 beta 3
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  7. #7
    Molto interessante, appena posso lo provo subito

  8. #8
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ciao

    Qualcuno potrebbe spiegarmi il perche dei CDATA commentati?


    Grazie

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    E' richiesto nei documenti XHTML (e vale anche per i blocchi javascript)

    http://www.w3.org/TR/xhtml1/
    sezione 4.8. "Script and Style elements"


    Nota: non ho testato questa soluzione in documenti che non fossero XHTML 1.0 strict

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Grazie, adesso leggo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.