2012-03-31 23 views
5

Ecco il mio codice:Allineamento caselle di testo tramite HTML

Classroom name:    <input type="text" name="txtClassroomName" size="20"><br> 
School name:     <input type="text" name="txtSchoolName" size="20"><br> 
School contact email address: <input type="text" name="txtSchoolEmail" size="20"><br> 
School address:    <input type="text" name="txtSchoolAddress" size="20"><br> 
School telephone number:  <input type="text" name="txtTelephoneNumber" size="20"><br> 

Come si può intuire, questo codice visualizza un testo e poi ha alcune caselle di testo dopo questo testo.

La mia domanda è questa: sto volendo allineare tutte le texbox in modo che siano allineate. Ho aggiunto degli spazi dopo il testo, tuttavia le caselle di testo appaiono subito dopo il testo, ignorando gli spazi che ho inserito. Qual è il modo migliore e più efficace per farlo? Forse un tavolo?

grazie

+0

Una tabella è il * più semplice * modo. Speriamo che la polizia della struttura del tavolo arrivi e ti mostri come farlo con le div. –

+4

@RobertHarvey Beh, quanto può essere difficile? http://jsfiddle.net/24nnv/2/ –

risposta

0

È inoltre possibile effettuare tutte le caselle di testo di apparire uno sotto l'altro al centro dello schermo. Sembrerà uniforme.

1

In HTML, gli SPAZIO continui vengono presi come un unico spazio. Quindi è necessario HTML caratteri speciali per lo spazio, cioè &nbsp;

Classroom name:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="txtClassroomName" size="20"><br>

Ma, questo è il modo sporco. Questo non è il modo standard per farlo. Inoltre, questo non è sicuro che le caselle di testo si allineeranno fino a quando non utilizzerai alcuni font mono-spazio.

Quindi, si dovrebbe prendere in considerazione il tag <TABLE> o CSS.

+0

Vishnu: Potete darmi un esempio di come aggiungere caselle di testo all'interno di una tabella. Grazie. – Garry

+0

http://stackoverflow.com/questions/4122645/how-to-fit-textbox-in-the-table-cell –

+1

-1 per suggerire un tavolo dove non è necessario. –

8

Normalmente useresti css per farlo per te. nel file css aggiuntivo:

label{ 
display:inline-block; 
width:200px; 
margin-right:30px; 
text-align:right; 
} 

input{ 

} 

fieldset{ 
border:none; 
width:500px; 
margin:0px auto; 
} 

Poi nel codice HTML è necessario impostare le etichette accanto alle caselle di testo:

<fieldset> 
<label for="txtClassroomName">Classroom name:</label><input type="text" name="txtClassroomName" size="20"> 
<label for="txtSchoolName">School name:</label><input type="text" name="txtSchoolName" size="20"> 
<label for="txtSchoolEmail">School contact email address:</label><input type="text" name="txtSchoolEmail" size="20"> 
<label for="txtSchoolEmail">School address:</label><input type="text" name="txtSchoolAddress" size="20"> 
<label for="txtSchoolEmail">School telephone number:</label><input type="text" name="txtTelephoneNumber" size="20"> 
</fieldset> 

nel file CSS, il margin-right: 30px; linea dice quanto distanti mettere l'etichetta e la casella di testo

impostando la larghezza del fieldset si crea essenzialmente una scatola attorno a tutto ed è possibile impostarne la larghezza se è necessario ingrandire le etichette.

Spero che questo aiuti.

Martyn

+0

Grazie Martyn. Funziona bene Una domanda: qual è il modo migliore per allineare le etichette e le caselle di testo al centro, pur mantenendo i margini di 30 pixel? – Garry

+0

Immagino che tu intenda al centro della pagina, puoi modificare il css per il fieldset in modo che sia centrale. Modificato la mia risposta per includere margine: 0px auto; nel fieldset css – SmithMart

3
<table> 
<tr><td><label for="txtClassroomName">Classroom name:</label>     
    <td><input type="text" name="txtClassroomName" id="txtClassroomName" size="20"> 
<tr><td><label for="txtSchoolName">School name:</label> 
    <input type="text" name="txtSchoolName" id="txtSchoolName" size="20"><br> 

... 
</table> 

Una tabella è l'unico modo per rendere le colonne allineate in modo che la prima colonna occupa solo la larghezza è necessario (la larghezza dell'etichetta più lungo). Qualsiasi altro approccio ti costringe a fare un'ipotesi sulla larghezza, ei risultati inevitabilmente varieranno e il codice non sarà robusto (la larghezza deve essere regolata ogni volta che cambia la lunghezza dell'etichetta più lunga).

Problemi correlati