2011-07-15 13 views
7

ラベルを左に浮かべた状態で、流体入力ボックスの幅を100%にしようとしています。現在持っているものは次のとおりです。入力ボックス100%幅、左側のラベル

.left { 
    float: left; 
} 

input { 
    width: 100%; 
} 

<form> 
    <label class="left">Name:</label> 
    <input class="left" id="name" name="name"/> 
    <div class="clear"></div> 
</form> 

これは機能しますが、ラベルの下に落ちます。フロートを割り当てるために親divを使用すると、100%には及ばない。何か案は?

ありがとうございました!

+3

何をしようとしていますか 行う?入力ボックスとラベルを同じ行に入れようとしていますか?コンテナの幅が100%の入力ボックスがある場合、同じ行にラベルの余地がないため、不可能です。 – Will

答えて

23

を参照してください:http://jsfiddle.net/r2769/(ウィンドウのサイズを変更する)

CSS:

.left { 
    float: left; 
} 

.left2 { 
    overflow: hidden; 
    display: block; 
    padding: 0 4px 0 10px 
} 
.left2 input { 
    width: 100% 
} 

HTML:

<form> 
    <label class="left" for="name">Name:</label> 
    <span class="left2"><input id="name" name="name" /></span> 
</form> 

is hereの説明。

+0

+1私はこのトリックがますます適用されるのを見ています...;) – NGLN

+0

ええ、それは本当に非常に便利です:) – thirtydot

+0

素晴らしいアイデアのためのThxは良いjsfiddleに描かれています。 – chikamichi

3

私は最近、CSSのカルク知った:

width: calc(100% - 100px); 

がこの問題を解決するために使用することができます。jsfiddle here

HTML:

<div class="setting"> 
    label 
    <input class="s2"/> 
</div> 

はCSS:

.setting { 
    position: relative; 
    width: 100%; 
} 
.setting .s2 { 
    position: absolute; 
    left: 180px; 
    width: calc(100% - 184px); 
} 
+0

は動作しますが、すべての最新のブラウザ(3バージョンのバック)でサポートされていません。休憩、特にSafari 5で –

関連する問題