Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82

    Obbligare un DIv ad essere alto almeno quanto un altro DIV

    ho una pagine strutturata così:

    un div esterno
    un div interno 'top' col titolo
    un div interno 'left' col menu
    un div interno 'main' col contenuto vero e proprio

    i contenuti del main talvolta sono molto lunghi, mentre altre volte sono molto corti, e mi crea il fastidioso effetto che il box 'main' risulta più corto del box 'left', che contiene il menu

    potete verificare cosa intendo qui (se non si possono inserire link cancellatelo e perdonatemi, ma col link è più chiaro) http://www.cadutidapiccoli.org/beta/index.php?page=home

    dato che il sito è molto amatoriale, lo sto facendo io, posso modificarne il layout a mio piacimento, e a vostra indicazione sul css.

    help !

  2. #2
    Credo che quello che te indenti fare non si possa fare, almeno che non usi il javascript, ma a tutto questo, che è alquanto inutile esiste un'altra soluzione.

    Visto che: sia il menu e il contenuto hanno lo stesso colore di sfondo potresti risolvere racchiudendo i due elementi ( menu e contenuto ) in un'elemento con impostato lo stesso colore di sfondo.

    Questo puoi farlo per dare l'impressione che il menu sia alto come il contenuto, ma in realtà il menù e il contenuto non saranno mai della stessa dimensione

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82
    credo di non avere capito.

    tu mi suggerisci di includere SIA IL MENU che IL CONTENUTO in un div esterno che li racchiuda entrambi?

    io allora ho provato a modificare così:

    codice:
          <div class="inner">
    
            <div class="layout" id="layoutLeft">
              <?php include ($menu) ?>
            </div>       
       
            <div class="layout" id="layoutMain">
              <?php include ($body) ?>
            </div>
          <div>
    dove il div class inner eredita questo css e per ora non gli ho applicato nessun'altra regola CSS specifica per la sua classe

    codice:
    DIV {
      border-width: 0;
      background-color: #F3F48E;
      width: auto;
      padding: 10px;
    }
    ma il problema rimane.

    aggiungo due dettagli importanti:

    il div di sinitra è impostasto con float:left e il div di destra ha un padding-left pari a poco più del width del div di sinistra.

    sto impazzendo, sono disposto a riscrivere il layout da zero, ma devo riuscire a fare lo sfondo alto come il menu, non credo sia difficile, ma mi sfugge la tecnica di base

  4. #4
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    scusa ma non puoi dare una larghezza al contenitore del menu e una al contenuto e metterli entrambi float left? io non metterei la stessa classe layout a tutti e due.

    e così facendo non ti serve quel mega padding al contenuto

  5. #5
    Originariamente inviato da ResianTaxidrive
    scusa ma non puoi dare una larghezza al contenitore del menu e una al contenuto e metterli entrambi float left? io non metterei la stessa classe layout a tutti e due.

    e così facendo non ti serve quel mega padding al contenuto
    Che centra la larghezza? se volevi dire l'altezza non credo sia possibile visto che dovrebbe cambiare l'altezza ogni volto che un'elemento diventa più alto dell'altro

    Io sto dicendo di far un layout del genere:
    codice:
    < div id="contenitore">
       <div id="menu">
       </div>
       <div id="contenuto">
       </div>
    </div>
    Non so, di solito a me questo funziona, prova a mettere al contenitore, oltre al colore di sfondo la proprietà position valorizzata a relative

    Se va tutto bene dovrebbe assumere la dimensione dell'elemento più alto, e se tutti i due l'elemento ( il menu e il contenuto ) hanno lo stesso sfondo a prima vista può sembrare che il contenuto abbia la stessa altezza del contenuto.

    A me di solito questo metodo funziona, ora non saprei se hai ben capito, ma non so che altro fare, almeno che tu non crei una funzione javascript che prende la dimensione del div più alto e la imposta ad entrambi.

  6. #6
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    no intendevo la larghezza, che centra l'altezza?

    Io metterei il codice come hai detto tu ma darei delle larghezze a "menu" e "contenuto" in modo che assegnando un float:left a entrambi stanno uno a fianco all'altro.
    Poi un bel clear:both subito prima dell'ultimo div che chiude il contenitore; così facendo sarà il più alto tra il menu e il contenuto che apriranno in altezza il contenitore.

  7. #7
    Non so se ho capito male io, ma lui nel titolo dice: obblicare un div ad essere alto.., e nella discussione non mi pare che parli di larghezza

  8. #8
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Avr' capito male io di sicuro ma mi sembrava che il problema fosse che il contenitore di tutto non si aprisse in altezza e il menu sbordassedi fuori.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82
    si, il problema è quello, alla fine daccordo con la società ho fatto un compromesso, ho separato il menu dal testo. niente div da ridimensionare così, ma ci ho fatto una pessima figura

  10. #10
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Ma no, ma perchè pessima figura. Poi secondo me a livello concettuale è giusto separare le due cose. Una cosa è il menu e una cosa è il testo, devono stare separati. Anche perchè se per ipotesi tu avessi delle pagine dinamiche composte da moduli php, il menu starebbe in un file e il contenuto vero e proprio della pagina in un altro, quindi penso che la separazione sia la cosa più logica.

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.