Visualizzazione dei risultati da 1 a 9 su 9

Discussione: problema line-height

  1. #1

    problema line-height

    Ciao a tutti,
    ho inserito all'interno di un LI un
    line-height:35px
    height:35px
    per fare in modo che il testo si centri verticalmente.
    Questo metodo va bene se il contenuto dell'elemento li è costituito da una singola parola
    ma quando le parole sono due (essendo il bolcco a larghezza fissa) va a capo mantenendo una spaziatura verticale rispetto alla prima parola. In questo modo la seonda parola esce dal blocco ...
    come posso fare in modo che anche le voci costituite da due parole siano centrate verticalmente???



    .module_menusx li{
    margin:0;
    padding:0;
    float:left;
    height: 35px;
    line-height: 35px;
    border-right:1px solid #013765;
    width:110px;
    text-align:center;
    }


    grazie

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova usando un line-height normale e impostando padding-top e padding-bottom
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    nada,
    facendo cosi:

    .module_menusx li{
    margin:0;
    padding:10px 0;
    float:left;
    height: 16px;
    line-height: normal;
    border-right:1px solid #013765;
    width:110px;
    text-align:center;
    }

    riesco a centrare verticalmente le voci che hanno una sola parola ma le voci che ne hanno due avendo lo stesso padding-top si allineano verticalmente alle altre ma occuna più spazio in verticale quindi non risultano centrate perchè il padding-bottom non viene rispettato....

  4. #4
    Utente di HTML.it L'avatar di Holin
    Registrato dal
    Oct 2007
    Messaggi
    64
    Io un po' di tempo fa trovai questa soluzione, non so da dove la presi ma funge

    Le regole che vengono precedute da # sono per IE, il quale non supporta i vari display:table, ma legge le regole con la # davanti

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html>
    <head>
      <title>Universal vertical center with CSS</title>
    <style>
    .greenBorder {border: 1px solid green;} /* just borders to see it */
    #contenitore {
    	display: table; 
    	height: 400px; 
    	#position: relative; 
    	overflow: hidden;
    }
    #insider {
    	#position: absolute; 
    	#top: 50%;
    	display: table-cell; 
    	vertical-align: middle;
    }
    #contenuto {
    	#position: relative; 
    	#top: -50%
    }
    </style>
    </head>
    
    <body>
      <div class="greenBorder" id="contenitore">
        <div id="insider">
          <div class="greenBorder" id="contenuto">
            any text
    
            any height
    
            any content, for example generated from DB
    
            everything is vertically centered
          </div>
        </div>
      </div>
    </body>
    </html>

  5. #5
    non era proprio la soluzione che cercavo ...
    io ho un menu fatto con una lista UL - LI .
    Alcune voci sono costituite da una sola parola ed altre sono costituite da due parole.

    voce1 | voce2 | voce tre | voce4 | voce sei | voce sette

    Essendo ogni LI di dimensione fissa le voci con due parole vanno a capo e se imposto il valore di line-height queste si distanziano notevolmente...

    quindi sto cercando un modo per allineare verticalmente i testi contenuti negli LI indipendentemente dal fatto che siano costituiti da una o da due parole...

  6. #6
    Utente di HTML.it L'avatar di Holin
    Registrato dal
    Oct 2007
    Messaggi
    64
    Originariamente inviato da stellina81
    non era proprio la soluzione che cercavo ...
    io ho un menu fatto con una lista UL - LI .
    Alcune voci sono costituite da una sola parola ed altre sono costituite da due parole.

    voce1 | voce2 | voce tre | voce4 | voce sei | voce sette

    Essendo ogni LI di dimensione fissa le voci con due parole vanno a capo e se imposto il valore di line-height queste si distanziano notevolmente...

    quindi sto cercando un modo per allineare verticalmente i testi contenuti negli LI indipendentemente dal fatto che siano costituiti da una o da due parole...
    Quello che ti ho postato fa esattamente quello, centra i testi composti da più righe.
    Basta che lo adatti ad una lista ed il gioco è fatto...

  7. #7
    no, assolutamente da non usare. primo, serve per Safari 2.x. secondo, non è valido, perchè inserisci un token ID dove non ci deve essere (http://www.w3.org/TR/CSS21/syndata.html ). terzo, non viene validato.

    il tuo problema può essere risolto usando la proprietà 'white-space' impostata su 'nowrap' per il contenuto inline all'interno dell'elemento li. in questo modo il testo non va a capo e puoi usare la centratura da te proposta. anzi, meglio usare misure relative per la scalabilità del testo.

  8. #8
    Utente di HTML.it L'avatar di Holin
    Registrato dal
    Oct 2007
    Messaggi
    64
    Originariamente inviato da thomas_anderson
    no, assolutamente da non usare. primo, serve per Safari 2.x. secondo, non è valido, perchè inserisci un token ID dove non ci deve essere (http://www.w3.org/TR/CSS21/syndata.html ). terzo, non viene validato.
    Vero, ma basta fare un css a parte per le regole solo di IE e inserire il link in un commento condizionale

    Originariamente inviato da thomas_anderson
    il tuo problema può essere risolto usando la proprietà 'white-space' impostata su 'nowrap' per il contenuto inline all'interno dell'elemento li. in questo modo il testo non va a capo e puoi usare la centratura da te proposta. anzi, meglio usare misure relative per la scalabilità del testo.
    Si ma evidentemente se va a capo significa che non c'è più spazio e quindi se lo rendi nowrap stravolge il layout.


  9. #9
    il tuo problema può essere risolto usando la proprietà 'white-space' impostata su 'nowrap' per il contenuto inline all'interno dell'elemento li. in questo modo il testo non va a capo e puoi usare la centratura da te proposta. anzi, meglio usare misure relative per la scalabilità del testo.

    il testo composto da due parole è giustissimo che vada a capo quindi la soluzione di usare nowrap a me non va bene.....

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.