2010-11-17 10 views
28

Potrzebuję etykiety, aby pozostała na tym samym wierszu, co pole wejściowe, które opisują. Chcę, aby te elementy płynęły tak, jak zwykle, gdy okno zmienia rozmiar, chcę tylko, aby etykieta pozostała po lewej stronie wejścia, które opisują. Jak to zrobić? Jakieś pomysły?Wymuszanie na etykiecie przepływu liniowego z danymi wejściowymi oznaczonymi etykietą

<label for="id1">label1:</label> 
<input type="text" id="id1"/> 
<label for="id2">label2:</label> 
<input type="text" id="id2"/> 

odpowiedział: odpowiedź Josiah Ruddell był na właściwej drodze, wykorzystując rozpiętość zamiast div dał mi poprawne zachowanie. Dzięki!

<span style="white-space:nowrap"> 
    <label for="id1">label1:</label> 
    <input type="text" id="id1"/> 
</span> 
<span style="white-space:nowrap"> 
    <label for="id2">label2:</label> 
    <input type="text" id="id2"/> 
</span> 

Odpowiedz

28

umieścić je wewnątrz div z nowrap.

<div style="white-space:nowrap"> 
    <label for="id1">label1:</label> 
    <input type="text" id="id1"/> 
</div> 
+0

ta nie działa, gdy próbowałem go. To sprawiło, że wcale się nie owinął ... Nadal chcę go zawinąć, gdy okno jest wystarczająco duże. – user366735

+1

Och, ale ta metoda działałaby z SPANEM! Więc co ja rzeczywiście patrząc na to: \t \t styl \t LABEL2: \t user366735

+1

dawka nie działa dla mnie! –

9

Umieść input w etykiecie, a rów atrybut

<label> 
    label1: 
    <input type="text" id="id1" name="whatever" /> 
</label> 

ale oczywiście for, co jeśli chcesz styl tekstu? Po prostu użyj span.

<label id="id1"> 
    <span>label1:</span> 
    <input type="text" name="whatever" /> 
</label> 
+0

działa to wizualnie, ale nie jest semantyczne. –

+4

@Sebastian Nie zgadzam się z całym sercem, whoops nie został zrobiony z moim komentarzem: specyfikacja w3c określa interakcję, gdy element wejściowy znajduje się w etykiecie. Zakładam, że to dlatego, że jest * przeznaczony *. "Aby nieodwracalnie powiązać etykietę z inną formantem, element kontrolny musi znajdować się w treści elementu LABEL.W takim przypadku LABEL może zawierać tylko jeden element kontrolny. Sama etykieta może zostać umieszczona przed lub po powiązanej kontroli. "Http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.9.1 – zzzzBov

+0

To nie działa, gdy próbowałem Wprowadzanie danych wejściowych do znacznika etykiety nie zmusza ich do owijania się razem: – user366735

-2

Dlaczego nie można po prostu użyć:

label { 
    display: block; 
    width: 50px; 
    height: 24px; 
    float: left; 
} 
+5

jsFiddle mówi: Błąd 404 Naprawdę nam przykro, ale tam nie ma takiej strony. –

0

Jeśli chcą być paragraf, a następnie użyć go.

<p><label for="id1">label1:</label> <input type="text" id="id1"/></p> 
<p><label for="id2">label2:</label> <input type="text" id="id2"/></p> 

Zarówno <label> i <input> są ustęp i przepływu materiałów, dzięki czemu można wstawić jako elementy akapitów i jako elementy blokowe.

0
<style> 
.nowrap { 
    white-space: nowrap; 
} 
</style> 

... 

<label for="id1" class="nowrap">label1: 
    <input type="text" id="id1"/> 
</label> 

owinąć wejść w Etykieta

0

http://jsfiddle.net/jwB2Y/123/

Poniższy CSS klasa siły tekst etykiety płynąć inline i uzyskać obcięty, jeśli jego długość jest większa niż max długości etykiety.

.inline-label { 
    white-space: nowrap; 
    max-width: 150px; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    float:left;  
    } 

HTML:

<div> 
    <label for="id1" class="inline-label">This is the dummy text i want to display::</label> 
    <input type="text" id="id1"/> 
</div> 
Powiązane problemy