Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di amamax
    Registrato dal
    Feb 2001
    Messaggi
    562

    Allineo due blocchi...come dare dimensione massima?

    Vorrei mettere due blocchi div all'interno di un div contenitore, messi in modo che siano allineati.

    fin qui tutto ok, basta un float:left.

    vorrei però che i due occupino la massima larghezza, suddividendosela fra di loro, ma senza usare width:50%...questo perchè vorrei aggiungere quanti div mi pare, in modo che questi si adattino da soli. Ho provato a dare ad ognuno di loro width:auto...ma rimangono della lunghezza del loro contenuto.

    Sapete come si fa?

    Grazie

  2. #2
    o/ ! Forse qualcuno ti darà risposte migliori, ma, a palmi, te la puoi cavare in diversi modi:
    -> con display:table, display:table-row etc... (funge bene ed è semplice, ma fa a pugni con i.e. vecchi)
    -> con una funzioncina php che data una costante che sia il numero di colonne ti stampa le larghezze dei div
    -> con qualche diavoleria java 8P

    o/ !

  3. #3
    Utente di HTML.it L'avatar di amamax
    Registrato dal
    Feb 2001
    Messaggi
    562
    Grazie ma possibile che non si possa fare una cosa tipo:

    div#primo{
    float:left;
    margin:0 auto
    }

    div#secondo{
    float:left;
    margin:0 auto
    }

    div#terzo{
    float:left;
    margin:0 auto
    }

    ...in modo che i 3 div affiancati occupino tutto lo spazio per un totale del 100%?
    Cavolo, con le tabelle una volta si poteva fare, dando alla tabella il 100% con tre celle...
    E con i div no??!?

  4. #4
    Ciao! heheheh in effetti hai ragione... oddio, a mio giudizio "display:table" è eccellente e va benissimo... chi ha "explorer preistoria" si arrangi... ma è un parere soggettivo... in più, a volte, si lavora per clienti che invece vogliono una compatibilità più certa.

    Il tuo codice ha un suo senso, (anche se sarebbe meglio una unica classe dato che i 3 stili sono identici) ma dando float:left, se nn ci sono larghezze assegnate il div collassa a sinistra 8(

  5. #5
    Utente di HTML.it L'avatar di amamax
    Registrato dal
    Feb 2001
    Messaggi
    562
    Si io ho fatto un esempio generico come avrai capito. Tanto per sottolineare un qualcosa che a quanto pare non si può fare...

    Ma sarebbe stata utile, soprattutto metti il caso che devi generare un numero di div affiancati incerto. Metti che siano dei "tab" per un wizard. Magari ai diversi wizard che ovviamente avranno un numero diverso di tab.

    Una soluzione sarebbe in teoria, ricavarsi numericamente la larghezza del tab contenitore, dividerlo per il numero dei tab e poi applicare le diverse larghezze...un casotto insomma.

    E soprattutto mi dispiace vedere che la gente non mi risponde a questo post, o forse perchè mi danno dell'ignorante, o perchè anche loro non trovano risposta...boh

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E soprattutto mi dispiace vedere che la gente non mi risponde a questo post, o forse perchè mi danno dell'ignorante, o perchè anche loro non trovano risposta...boh
    La ragione e` la seconda.
    Che io sappia non esiste una risposta soloCSS che funzioni anche nei browser vecchi.

    In JS si puo` fare: devi farti una tabella di questo tipo:
    codice:
     2   49.9
     3   33.3
     4   24.9
     5   19.9
     ...
    e poi usarla per definire la larghezza (in %) in base al n. di elementi.

    Ma queste sono cose che normalmente fa il server: in partenza si sa quanti sono gli elementi, per cui e` facile anche definrne la larghezza.

    Nota che il totale fa sempre qualcosa meno di 100%, per evitare problemi con gli arrotondamenti.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.