2011-02-23 7 views
10

Mam dwa elementy HTML tak:Jak ustawić taką samą szerokość do wprowadzania tekstu HTML i upuść WEJŚCIA

<input type="text"> 

i

<select> 
    <option>Apple</option> 
    <option>Orange</option> 
    <option>Banana</option> 
    <option>Grapes</option> 
</select> 

nie jestem w ogóle w stanie dokonać ich ta sama szerokość. Bez względu na to, jaką szerokość określam dla OBU elementów, 100%, 200px czy cokolwiek, rozwijanie zawsze wydaje się być o 5px krótsze niż pole tekstowe. Dzieje się tak w IE, Firefox i Chrome - w WINDOWS.

Jak ustawić je tak, aby miały tę samą szerokość?

Rozwiązanie

input, select 
{ 
    -ms-box-sizing:border-box; 
    -moz-box-sizing:border-box; 
    box-sizing:border-box; 
    -webkit-box-sizing:border-box; 
} 

Odpowiedz

5

Spójrz na this working Example

Można modyfikować CSS tylko ją zachować jak:

input, select 
{ 
    width:250px;   
} 
+0

+1 nie rozwiązuje problemu całkowicie, ponieważ jestem zmuszony ustawić niestandardową granicę, aby osiągnąć 100% równości szerokości. Zauważyłem, że musicie obowiązkowo ustawić granicę, aby to zadziałało - i niszczy to rodzimy wygląd i styl. Chciałbym mieć natywną granicę dla kontroli. Ale rozwiązuje problem z szerokością. –

+0

Najlepsza opcja do tej pory ... więc oznaczanie jako odpowiedź. Ale naprawdę chciałbym pominąć granicę i móc ustawić szerokość. –

+1

Dzięki za wprowadzenie mnie do właściwości box-size. Po kilku eksperymentach odkryłem, że po ustawieniu go na 'border-box' zamiast' content-box', uzyskuję pożądany efekt BEZ ustawienia granicy. –

2

Może to zrobić?

input[type="text"] { 
    width: 200px; 
} 

select { 
    width: 205px; 
} 
+1

Naprawdę mądry i praktyczny :) ale jestem typem osoby, która nie spać po zrobieniu "hack". Jestem ciekawy ... dlaczego nie mieliby tej samej szerokości? Twoje rozwiązanie ... różnica szerokości może wzrosnąć do 10 pikseli lub zmniejszyć się do 0 w zależności od tematu. Co wtedy powinienem zrobić? –

+0

@Senthil: tak, przepraszam, nie mogłem się oprzeć. Zawsze stylem jest element '