2011-07-25 4 views
-1

私は、そのブラウザで実行したときに、div要素が大きくテキストボックスに対応するために成長しないとテキストボックスがちょうどdiv要素を破壊されたとして、それが表示され、次のHTMLコードなぜテキストボックス入力コントロールが親divから抜け出すのですか?

<div style="background-color:Red;width:100px;height:100px;padding:5px;"> 
    <input type="text" class="text" id="txtExtraSubject" style="width:450px;"/> 
</div> 

を持っています。 なぜこれが起こっていて、それを修正するのですか?

+0

あなたがダウン投票の理由についてコメントを下さっている場合はどうぞ。 – Karim

答えて

3

width: 100pxは、「幅は100ピクセルです」ではなく、「幅は100ピクセル以上」であることを意味します。

表示プロパティを適用してラップを縮小し、代わりにmin-widthを追加することができます。

(未テスト:display: table; min-width: 100px;、他のシルクのラッピング方法は、コンテンツ(float: left)を浮動含めて、利用可能です)

+0

まあ私はちょうど最小幅をテストしている、ちょうどそのie6との互換性を確認したい – Karim

+0

IE6は分の幅をサポートしていません。 Googleはそれを偽造するためのハッキングについて知っている。 – Quentin

+0

それはうまく動作しますが、問題は、display:tableをdivに含めると100%の幅に成長するだけです。問題は私が考えているdisplay:tableはie7でサポートされていないので私は別の解決策を探しています – Karim

0

あなたは高さとdivのための幅を指定している - なぜそれはあなたが言っているものを無視すべきですそれは何ですか?

だけの幅を削除するか、640x460ピクセルに設定します(パディングのためのテキストエリアと10pxのため450px)

+0

私はコンテンツを変更するたびにdivの幅を設定したくありません。そして分幅は実際に私が必要とするものです:) – Karim

2

また、潜在的に親にoverflow:auto;を使用することができます。

テキストエディットを親divに制約します。ただし、既に幅が指定されているため、親の幅は増加しません。結果は水平スクロールバーになります。

これが望ましくない場合は、widthではなく、テキスト入力の幅を小さくするか、親のmin-widthを使用してください。

関連する問題