Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    Posizionare box float:left dentro un div con width:auto

    Ciao.

    Ho un pannello (id#main nel codice) che ha width:auto. Questo mi serve per far espandere la finestra a tutta pagina. Width:100% non va bene perchè se uso margini, padding o bordi questi mi vanno ad aumentare il 100% e mi compare la barra di scorrimento orizzontale.

    Il problema adesso è che dentro devo posizionare dei box (div.box nel codice) affincati che scorrano verso il basso in base alla risoluzione dello schermo: cioè per es. vedrò 5 box per riga se ho una risoluzione alta, 4 per riga se più bassa, poi 3 ecc. Per forza di cosa devono essere float:left, se no non fluiscono nel modo corretto.

    Però quando posiziono questi box con float:left dentro il pannello con width:auto, il pannello non si adegua in altezza, cioè i box non fanno contenuto per il pannello e il pannello rimane alto qualche pixel soltanto. Come posso fare?
    Ecco il codice

    Codice PHP:
    div#main {
        
    width:auto;
        
    padding:10px;
        
    background-color:red;
    }
    div#main .box{
        
    float:left;
        
    width:400px;
        
    height:400px;
        
    border:1px black solid;
        
    background-color:blue;
        
    margin:10px;

    Codice PHP:
    <body>
            <
    div id="main">
            <
    div class="box">Box 1</div>
            <
    div class="box">Box 2</div>
            <
    div class="box">Box 3</div>
            <
    div class="box">Box 4</div>
            <
    div class="box">Box 5</div>
        </
    div>
    </
    body
    Allego anche un'immagine del risultato. Come si nota il pannello main (rosso) non "ingloba" i 5 box (blu)
    Immagini allegate Immagini allegate
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    Inserisci questo codice nel css poi dovrebbe funzionare:

    codice:
    div#main:after {     clear: left;     content: ".";     display: block;     height: 0;     visibility: hidden; }
    ps: inserisci anche height: auto al div main, è quello il comando per l'altezza automatica.

    Spero di averti aiutato.

    Un saluto

  3. #3
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Sì funziona, grazie mille.
    Nel frattempo ho trovato un'altra soluzione che consiste nell'aggiungere, dopo i 5 box, un

    codice:
    <div style="clear:both"></div>
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Originariamente inviato da marco_c
    Sì funziona, grazie mille.
    Nel frattempo ho trovato un'altra soluzione che consiste nell'aggiungere, dopo i 5 box, un

    codice:
    <div style="clear:both"></div>
    Questo inserisce una riga vuota ?

  5. #5
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Dalla guida di HTML.it

    La proprietà clear serve a impedire che al fianco di un elemento compaiano altri elementi con il float. Si applica solo agli elementi blocco e non è ereditata. L'origine di tale proprietà è questa: visto che il float sposta un elemento dal flusso normale del docuemento, è possibile che esso venga a trovarsi in posizioni non desiderate, magari al fianco di altri elementi che vogliamo invece tenere separati. clear risolve questo problema.
    Non capisco bene perchè ce ne sia bisogno, nel mio caso. Ho notato però che l'unico browser che ha il problema è Firefox, mentre IE e Chrome non presentavano fin dall'inizio il problema che ho esposto.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.