2012-04-17 11 views
1

私はtextareas readonly属性に問題があります。Readonly textareaとIE9 Scrollbars

$("#mytextarea").prop("readonly", true); 

CSS:

textarea { width: 400px; height: 400px; } 
textarea[readonly] { overflow: auto; } 

HTML:Internet Explorer 9ので

​​

、スクロールバーがshownedされていない、私はこのように、属性を設定するためにはJQueryを使用していますユーザーはオーバーフローコンテンツを読み取ることができません。他のすべてのブラウザを使用した場合の動作は正しいです。フィールドは編集できませんが、ユーザーは自由にスクロールできます。

これを修正するにはどうすればよいですか?

+2

使用しているjQueryのバージョンはわかりませんが、バージョン1.6ではプロパティを処理する適切な方法は['.prop()'](http://api.jquery.com/prop /): '$("#mytextarea ")。prop(" readonly "、true);' –

+0

ヒントありがとう;) –

答えて

3

オーバーフローがクリップされていない可視

http://www.w3schools.com/cssref/pr_pos_overflow.aspから。それは要素の ボックスの外にレンダリングされます。これはオーバーフローがクリップされ、コンテンツの残りの部分は 見えない

スクロールオーバーフローがクリップされますが、スクロールバーがの 残りの部分を見るために追加さを隠さ

デフォルトですオーバーフローがクリップされている場合は、スクロールバーコンテンツ継承の 残りの部分を見るためにを追加する必要がありますコンテンツ

オートように指定しますオーバーフロー プロパティの値は、親要素

から継承されなければならない。このようなoverflowプロパティの値として「スクロール」試してみてください:それは何をしているのでoverflow: auto;overflow: scroll;

変更をあなたはIE9だけで、あなたが他のbroswerのためにautoを保つことを望むのでは欲しくない。 2つのCSSファイルを作成し、HTML内でこのコードを使用します。

<!--[if IE 9]> 
    <link rel="stylesheet" type="text/css" href="ie9.css"> 
<![endif]--> 

と定期的なCSSの内側ie9.css内部overflow: scroll;overflow: auto;を置きます。

EDIT:スコットが提案、私はあまりにも、各ブラウザのために複数のCSSを組み込む方法について...このリンクhttp://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/を読み取ろうとします。それは良いアイデアとHTTP要求を減らすための良い方法です。

+0

別のHttpRequestを犠牲にして。 [ポールアイルランドの方法](http:// paulirish。条件付きクラスをhtmlタグに追加することで、処理する必要があるIEのバージョンを1つのスタイルシートでターゲットにして、HttpRequestを保存することができます。 –

+0

@Scott良い点。投稿を編集して追加します。 –

2

overflow: autoからoverflow: scrollに変更してください。