Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di capsula
    Registrato dal
    Jan 2006
    Messaggi
    818

    Problema Allineamento Span e Form dentro a Div con CSS

    Ho riscritto il codice delfile header.html del tema per il mio sito in phpnuke ma ho un problema (strano )
    Sotto al logo voglio fare una fascia con all'estrema sinistra un tag span che mostri il benevenuto all'utente (o il "registrati") e alla destra un form input con data e ora che si aggiornano. Vedi il mio sito ora e capite.
    Ma non riesco. il form input mi va a capo!! E non si vede l'ora... non so perchè però... nell'altra file di prova funziona da dio!

    Questo è il codice del file header.html e sotto c'è il css.

    Header.html

    <div id="sito">
    <div id="header">
    <div id="logo" align="center"> [img]themes/TonyClub_Light_Pastel/images/logo.gif[/img]</div>
    <div id="info_utente">
    <span> $theuser </span>
    <form name="DT" >
    <input class="data_ora" type="text" name="MOSTRA" size="40">
    </form>
    <script language="javascript" src="themes/TonyClub_Light_Pastel/style/date_time.js"></script>
    </div>


    </div>
    </div>


    E il CSS:

    /* CSS Document */

    /* tag body: allineamento e sfondo */
    body {
    text-align:center; /* allineamento centrale, per IE */
    background:#D6D6C6 url(images/linea.gif) repeat;
    }


    /* Pagina generale sito, centrata */
    #sito {
    width:70%;
    text-align:left; /* riporta il testo a sinistra, per IE */
    margin:auto auto; /* allineamento centrale, per FF */
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    background:#FFECBF;
    margin:0;
    padding:0;
    border:#000 1px solid;
    }
    /* inizio sezione Header */
    #header {
    width: 100%;
    margin: 0;
    padding: 0;
    }
    /* sezione Logo dentro header */
    #logo { width: 100%; margin: 0; padding: 0; clear: both; }

    /* sezione Info Utente e Data/Ora dentro header */
    /* stampa info utente */
    #info_utente {
    width: 100%; margin: 0; padding-left: 0.2%; text-align:left;
    color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; text-decoration:none;
    }
    /* stampa data e ora */
    input.data_ora {
    font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-style:italic; color:#000; text-align:right;
    border:#F00 solid 1px; padding-right:2px; padding-left:2px;
    }


    Dove sbaglio??? Aspetto risposte, grazie, ciao

  2. #2
    L'elemento <form> va a capo perché è un elemento a livello di blocco. Dato che hai il <form> a destra, potresti dichiararlo flottante e quindi usare un tag vuoto per "ripulire" il float. Prendendo il tuo codice pari pari:

    codice:
    <div id="sito">
    <div id="header">
    <div id="logo" align="center"> [img]themes/TonyClub_Light_Pastel/images/logo.gif[/img]</div>
    <div id="info_utente">
    <span> $theuser </span>
    <form name="DT" >
    <input class="data_ora" type="text" name="MOSTRA" size="40">
    </form>
    <br class="clear" /> 
    <script language="javascript" src="themes/TonyClub_Light_Pastel/style/date_time.js"></script>
    </div>
    
    
    </div> 
    </div> 
    
    
    /* CSS Document */
    
    /* tag body: allineamento e sfondo */
    body {
    text-align:center; /* allineamento centrale, per IE */
    background:#D6D6C6 url(images/linea.gif) repeat;
    }
    
    
    /* Pagina generale sito, centrata */
    #sito {
    width:70%;
    text-align:left; /* riporta il testo a sinistra, per IE */
    margin:auto auto; /* allineamento centrale, per FF */
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    background:#FFECBF;
    margin:0;
    padding:0;
    border:#000 1px solid;
    }
    /* inizio sezione Header */
    #header {
    width: 100%;
    margin: 0;
    padding: 0;
    }
    /* sezione Logo dentro header */
    #logo { width: 100%; margin: 0; padding: 0; clear: both; }
    
    /* sezione Info Utente e Data/Ora dentro header */
    /* stampa info utente */
    #info_utente {
    width: 100%; margin: 0; padding-left: 0.2%; text-align:left;
    color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; text-decoration:none;
    }
    form {
    padding: 0;
    margin: 0;
    float: right;
    }
    .clear {
    clear: right;
    }
    /* stampa data e ora */
    input.data_ora {
    font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-style:italic; color:#000; text-align:right;
    border:#F00 solid 1px; padding-right:2px; padding-left:2px;
    }
    Attento solo a non impostare il margin-right all'elemento <form>, perché essendo flottante a destra, incorrerebbe nel bug dei margini raddoppiati in IE! Puoi comunque usare un padding-right se vuoi distanziarlo dal margine destro del <div> che lo contiene, oppure puoi impostare il margin-right insieme alla dichiarazione display: inline (che risolve misteriosamente il bug dei margini raddoppiati!).

    Ah, ho visto che hai una dichiarazione con margin: auto auto. Sarebbe più corretto impostarla come margin: 0 auto, perché impostare i margini verticali sul valore auto non ha nessun significato (ce l'ha solo per quelli orizzontali, per ottenere appunto l'allineamento centrato dei box nei browser aderenti agli standard).

    Inoltre hai il <div> che contiene le info utente e il <form> con impostata una larghezza e un padding sinistro...il che ti sballa il layout se guardi la pagina con IE 6 e con i browser aderenti agli standard. Ti conviene impostare il padding-left dell'elemento <span> anziché quello del <div> che lo contiene.

  3. #3
    Utente di HTML.it L'avatar di capsula
    Registrato dal
    Jan 2006
    Messaggi
    818
    Ciao, grazie della risposta, ho cercato di applicare tutti i tuoi consigli e ora sono messo così:
    Il form mi sta dentro al div ma va a capo rispetto allo span, mentre io vorrei che fossero centrati in altezza, sulla stessa riga insomma.
    Inoltre ho dei problemi con le percentuali con IE. Anche se imposto il div al 100% di larghezza IE me lo mostra + stretto, non capisco perchè. Inoltre IE non accetta le pecentuali con i decimali... non mi funziona.
    Ti allego le due immagini di come sono preso ora, sia con IE che con Firefox.

    Ah una cosa, guarda questo sito:
    link . Noterai che ha uno sfondo "rigato". E' la stessa cosa che voglio fare io ma non mi riesce... non capisco cosa sbaglio nel codice. Se uso i css nella sezione head con i tag style invece funziona (ho provato in una ltro file) ma io devo usare un file css esterno.


    Le immagini: (ho aggiunto dei bordi così capite meglio)

    Con Firefox:


    con IE:



    E questo il codice della pagina HTML:


    <div id="corpo">
    <div id="sito">
    <div id="header">
    <div id="logo" align="center">[img]images/logo.gif[/img] </div>
    <div id="info_utente">
    <span class="infoutente">$theuser</span>
    <form name="DT" >
    <input class="data_ora" type="text" name="MOSTRA" size="40">
    </form>
    <br class="clear" />
    <script langage="javascript" src="style/date_time.js"></script>
    </div>
    </div>
    </div>
    </div>


    E questo il CSS modificato:

    #corpo {
    text-align:center; /* allineamento centrale, per IE */
    background:#D6D6C6 url(images\linea.gif) repeat;
    }

    /* inizio selettori costruzione pagina */
    /* Pagina generale sito, centrata */

    #sito {
    background:#FFECBF;
    width:70%;
    margin:0 auto; /* allineamento centrale, per FF */
    text-align:left; /* riporta il testo a sinistra, per IE */
    border:#000 1px solid;
    padding:0;
    font-family:Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    }

    /* inizio sezione Header */
    #header {
    width: 100%;
    margin: 0;
    padding: 0;
    }
    /* sezione Logo dentro header */
    #logo { width: 100%; margin: 0; padding: 0; clear: both; }
    img#logoimg { width:700px; height:100px; }

    /* sezione Info Utente e Data/Ora dentro header */
    /* stampa info utente */
    #info_utente { border:#0F0 1px solid;
    width: 100%; margin: 0; padding: 0;
    color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; text-decoration:none;
    }
    span.infoutente { padding-left:2px; }
    /* stampa data e ora */
    input.data_ora {
    font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; font-style:italic; color:#000; text-align:right;
    border:#F00 solid 1px; padding-left: 2px; padding-right: 2px;
    }
    form { padding:0; margin:0; float:right;}
    .clear { clear:right; }

  4. #4
    Utente di HTML.it L'avatar di capsula
    Registrato dal
    Jan 2006
    Messaggi
    818
    Nessuno? Dai perfavore....

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Noterai che ha uno sfondo "rigato". E' la stessa cosa che voglio fare io ma non mi riesce
    Lo sfondo "rigato" e` dato da una piccola immagine che viene ripetuta.
    Fai click destro sullo sfondo e poi visualizza immagine di sfondo (almeno nel mio browser funziona cosi`).
    In quel caso e` un'immagine orizzontale ripetuta solo in verticale, ma lo stesso sfondo puoi realizzarlo anche con una immagine molto piu` piccola, da ripetere in orizz e vert
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di capsula
    Registrato dal
    Jan 2006
    Messaggi
    818
    Originariamente inviato da Mich_
    Lo sfondo "rigato" e` dato da una piccola immagine che viene ripetuta.
    Fai click destro sullo sfondo e poi visualizza immagine di sfondo (almeno nel mio browser funziona cosi`).
    In quel caso e` un'immagine orizzontale ripetuta solo in verticale, ma lo stesso sfondo puoi realizzarlo anche con una immagine molto piu` piccola, da ripetere in orizz e vert
    Si si lo so fare, intendevo cosa di codice era errato.
    Ho trovato l'errore. Bisogna passare il parametro della proprietà url tra apici.
    Il codice diventa:

    #corpo {
    text-align:center; /* allineamento centrale, per IE */
    background:#D6D6C6 url('../images/linea.gif') repeat;
    }


    Del resto non mi dite nulla? Please... ciao

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