Visualizzazione risultati 1 fino 8 di 8

Discussione: form senza tabella!

  1. #1
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito form senza tabella!

    Salve!.

    Sto cercando di fare un form, senza l'utilizzo di tabelle per posizionare i vari elementi.

    Sono arrivato a questo punto:
    Codice HTML:
    [...]
    <style type="text/css">
    .contenitore_form
    {
    	width: 200px;
    	padding: 10px;
    }
    .contenitore_form label, input
    {
    	width: 90px;
    	margin-bottom: 10px;
    }
    .contenitore_form label
    {
    	float: left;	
    	text-align: right;
    }
    .contenitore_form input
    {
    	float:right;
    }
    .contenitore_form .submit
    {
    	width: auto;
    	margin: auto;
    }
    </style>
    [...]
    <div class="contenitore_form">
    	<form action="form_senza_tabella.html" method="post">
    		<label for="nick">Nick: </label><input id="nick" type="text" name="nick">
    		<label for="password">password: </label><input id="password" type="password" name="pass">
    		<label for="ricorda">Ricorda</label><input id="ricorda" type="checkbox" name="ricorda">
    		<input type="submit" value="login" class="submit">
    	</form>
    </div>
    [...]
    (qui la pagina).

    Non riesco a:

    • allineare la checkbox a sinistra (facendolo stare più vicino alla scritta "ricorda").
    • centrare il pulsante submit.


    Altre cose scondarie: mi piacerebbe eliminare «class="submit"». Mi piacerebbe anche eliminar tutti gli id negli input; li ho messi per far in modo che la pagina sia validata (per il fatto dei label).

    Grazie!

    Ciao!

    EDIT:
    Ovviamente, suggerire o proporre altri miglioramenti che non ho scritto è ben accetto .
    Ultima modifica di alemoppo : 15-12-2012 alle ore 17.59.27

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Gli id degli input ti servono, altrimenti le label non sono associate ai campi e cliccarci sopra non funziona. Se ti confondono, al massimo dagli un prefisso tipo c- per differenziarli dagli altri.

    Per la checkbox, io la metterei prima della label, tipo [ ] ricordami bla bla. Inoltre, mettere ogni riga in un paragrafo aiuta assai per l'allineamento.

  3. #3
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Per centrare verticalmente le etichette e i rispettivi campi usa la proprietà line-height: impostala pari all'altezza esterna dei campi (padding+bordo+contenuto).
    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Altre cose scondarie: mi piacerebbe eliminare «class="submit"»
    Puoi:
    • usare l'elemento button (che tra l'altro mi sta anche più simpatico di quell'accozzaglia di input), oppure
    • usare i selettori di attributo CSS2.1 (che sono comunque ben supportati se escludiamo versioni vetuste di un noto browser).
    Ultima modifica di karl94 : 15-12-2012 alle ore 20.13.33

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Grazie 1000 ad entrambi!. Sinceramente, non mi ero nemmeno accorto del problema dell'allineamento delle scritte con gli input!

    Prima che rispondesse karl, ho fatto così.

    Con la risposta di karl, ho rifatto così.

    Probabilmente userò la seconda solluzione, perché a "livello html" è più pulita, senza <p>. Peccato soltanto per «class="testo_ricorda"», altrimenti a livello html sarebbe stato l'ideale

    Se avete atri suggerimenti, son qui; ma per adesso mi accontento così

    Grazie ancora,

    Ciao!

    EDIT:

    Come non detto, la seconda soluzione non va su IE (io ho il 10). La prima invece funziona bene. Penso sia "colpa" del line-height: fa la stessa cosa negli altri browser impostando questo valore a livello maggiore di 22px (dovrebbe essere a 29px).
    Ultima modifica di alemoppo : 15-12-2012 alle ore 21.14.45

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Nota che allineare il testo a destra può essere scomodo: l'inizio della riga è sempre diverso, invece di essere nella stessa posizione, e quindi l'occhio fa più fatica a trovarlo.

    Ehm, nota che la "pulizia" a livello html è una metrica tutta tua —c'è chi si lamenterebbe del form-container, chi della mancanza di fieldset e legend— pensa a come l'hai inventata e dove ti porta, quando la usi per valutare il tuo codice.

    Mi sembra che input debba sempre essere all'interno di un blocco, quindi p o div sono entrambe valide scelte. La tua forza l'uso di un div esterno senza alcuna semantica.

    Comunque guarda form in giro per il web, e vedrai i mille modi di implementarle.

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Prima di provare a far quel codice sopra, ho cercato, ed in particolare ho letto questo. Alla vista del form, mi è subito piaciuto l'allineamento a destra del testo, perché mi da l'idea di una cosa ordinata. In effetti però sarebbe più comodo da leggere allienando il testo a sinistra.

    Comunque, ho pensato di farne uno io perché lì usa i <br>, e volevo evitarli (quando ho visto i <br>, non ho nemmeno letto approfonditamente il css che hanno usato).

    Per "pulizia del codice", intendo di usare meno tag html possibile (non tralasciando quelli necessari): a me il div esterno serve per la "misura", ovvero per dar un width al form. Potrebbe esser sostituito da un eventuale div del template. Anche utilizzando i <p> dovrei comunque usare un div, altrimenti ogni riga del <p> mi prenderebbe "tutto" quello che può (sarebbe dire impostare il width:100%; non so se mi son spiegato).

    I fieldset e legend in effetti ci vorrebbero. Li metterò, grazie. .

    Grazie ancora.

    Ciao!
    Ultima modifica di alemoppo : 15-12-2012 alle ore 22.10.15

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Invece del div, puoi applicare la larghezza direttamente al tag <form>

    Confronto fra i diversi allineamenti, ognuno con i suoi pro e contro:
    http://webylife.com/design/how-to-al...-in-web-forms/
    Ultima modifica di dreadnaut : 15-12-2012 alle ore 22.32.29

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Invece del div, puoi applicare la larghezza direttamente al tag <form>
    Perché non mi è venuto in mente?!

    Articolo interessantissimo. Grazie!

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •