2012-03-31 14 views
5

Oto mój kod:Wyrównywanie pola tekstowe za pośrednictwem 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> 

Jak można się domyślić, ten kod wyświetla jakiś tekst, a następnie ma kilka otaczaniem po tym tekście.

Moje pytanie brzmi: chcę dopasować wszystkie texboksy do ich wyrównania. Po tekście dodałem spacje, ale pola tekstowe pojawiają się bezpośrednio po tekście, ignorując spacje, które wprowadziłem. Jaki jest najlepszy i najskuteczniejszy sposób na zrobienie tego? Może stolik?

dzięki

+0

Stół jest * najprostszym * sposobem. Mam nadzieję, że pojawi się policja układu tabeli i pokaże ci, jak to zrobić z divami. –

+4

@RobertHarvey No cóż to może być trudne? http://jsfiddle.net/24nnv/2/ –

Odpowiedz

0

Można także wszystkie pola tekstowe wyświetlane jedna pod drugą na środku ekranu. Będzie wyglądać jednolicie.

1

W HTML, ciągłe spacje są traktowane jako pojedyncze spacje. Więc trzeba HTML znak specjalny do przestrzeni, która jest &nbsp;

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

Ale to jest brudny sposób. Nie jest to standardowy sposób wykonania tej czynności. Ponadto nie jest pewne, czy pola tekstowe będą ustawione tak samo, dopóki nie użyjesz czcionek mono-spacji.

Należy zatem wziąć pod uwagę znacznik <TABLE> lub CSS.

+0

Vishnu: Czy możesz podać przykład, jak dodać pola tekstowe w tabeli. Dzięki. – Garry

+0

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

+1

-1 za sugerowanie tabeli, w której nie jest ona potrzebna. –

8

Zwykle używasz css, aby zrobić to za Ciebie. W pliku css Dodaj:

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

input{ 

} 

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

Następnie w html by ustawić etykiety się obok pola tekstowego:

<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> 

w pliku CSS, z margin-right: 30px; linia określa, jak daleko od siebie ustawić etykietę i pole tekstowe, ustawiając szerokość zestawu pól, w zasadzie tworzy to pole zaokrąglone i możesz ustawić jego szerokość, jeśli chcesz powiększyć etykiety.

Nadzieję, że pomaga.

Martyn

+0

Dzięki Martyn. To działa dobrze. Pytanie: Jaki jest najlepszy sposób wyrównywania etykiet i pól tekstowych w centrum, zachowując przy tym margines 30 pikseli? – Garry

+0

Zgaduję, że masz na myśli na środku strony, możesz zmienić css dla zestawu pól, więc jest centralny. Zmieniono moją odpowiedź na margines: 0px auto; w zestawie pól 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> 

Stół jest jedynym sposobem, aby kolumny wyrównane tak, że pierwsza kolumna zajmuje tylko potrzebuje szerokości (szerokość najdłuższego etykiecie). Każde inne podejście zmusza do odgadnięcia szerokości, a wyniki będą się nieuchronnie różnić, a kod nie będzie solidny (szerokość musi być dostosowywana za każdym razem, gdy zmienia się długość najdłuższej etykiety).

Powiązane problemy