IE

2009-09-11 7 views
11

に複数行のテキストボックスに垂直スクロールバーを非表示に私は複数行のテキストボックスを持っている:IE

<asp:TextBox ID="txtBody" runat="server" TextMode="MultiLine" Rows="10" Width="95%" /> 

、すなわちテキストボックス内のテキストが10行を占有していない場合でも、垂直スクロールバーのバーがあります。
Firefoxでは、スクロールバーはテキストが10行を超える場合にのみ表示されます。

何ができますか? autoに

答えて

17

設定CSSスタイルのオーバーフロー:

<asp:TextBox ID="txtBody" runat="server" TextMode="MultiLine" 
      Rows="10" Width="95%" style="overflow:auto;" /> 

デフォルトの動作は、overflowが指定されていないときに、IEとFFで異なる振る舞いを参照してください理由である、ブラウザ間で異なります。

ページ上のすべての複数行テキストボックスのデフォルトのブラウザ動作を上書きするには、スタイル定義に追加することができます。注

:その後、各テキストボックスにインラインスタイルを含める必要はありません複数行のテキストボックスがHTMLタグ <textarea>を使用してレンダリングされるので、私たちは textarea要素型のCSSスタイルを指定します。

textarea { 
 
    overflow: auto; 
 
}
<textarea id="txtBody1" rows="5">Text in 
 
textbox 
 
with 
 
many 
 
lines, 
 
so that 
 
scrollbar 
 
will 
 
appear. 
 
</textarea> 
 
<textarea id="txtBody2" rows="5">Smaller text, no scrollbar.</textarea>

+0

にCSSクラスを追加することができ、ウルのコードでは、仕事をdosnt。私は再びスクロールバーを参照してください。 –

4

これは、IEのデフォルトの動作です。オーバーフローのデフォルト値が表示され、コンテンツがオーバーフローしなくてもIEは無効なスクロールバーを追加します。私は2番目のdivにいくつかの新しい余分なテキストを追加したとき

あなたが笑要素

<style> 
    .Over { overflow: auto; width: 95%; } 
</style> 

<asp:TextBox ID="txtBody" runat="server" CssClass="Over" TextMode="MultiLine" Rows="10" /> 
+0

インライン・スタイリングよりも優れています。 – Alextronic

+3

@Alextronic:実際には、CSSスタイル 'overflow:auto;'を使う必要があります。どのように実装するかはオプションですが、ここでの問題ではありません。また、別のCSSファイルを使用する方が良いと主張することもできますが、これは問題にはあまり関係しません。どちらの方法でも動作します。インラインスタイルは、実行されるコードと複雑さを最小限に抑えています。 – awe