2017-07-26 9 views
0

IE11で実行するAngular4/Bootstrap3にテキストエリアフィールドを作成しています。サイズ変更可能なテキスト範囲は特定のサイズまでです

テキスト領域は、いくつかのテキスト

<textarea [value]="mydata" class="form-control" rows="5"></textarea> 

これは1がそれが期待するように動作しますが事前に入力されます。 5行が表示され、テキストが5行に収まるものを超えると、スクロールバーが表示されます。テキストが空白より小さい場合、テキスト領域にスペースが表示されます。

私が達成しようとしているのは、デフォルトの動作とは少し異なります。テキストエリアのサイズを変更することができますが、サイズは特定の行数を超えてはいけません。最大サイズは5行に設定されています。 したがって、表示するテキストを1行に収めることができれば、テキスト領域は1行だけを表示します。 4行に収めることができれば、4行に拡張されます。 10行に収まる場合は、最大5行まで展開され、残りのテキストのスクロールバーが表示されます。

このような種類の動作は可能ですか?私は例として行を使用しましたが、高さのプロパティなどで実現できる場合は、それも問題ありません。

+0

元々10行に当てはまるテキストを5行に制限すると、水平オーバーフローが発生します。これはあなたが必要とするものですか? – Rubenxfd

+0

はい、そうです。しかし、5行未満のテキストの場合、5行(空白がたくさんあります)を表示したくありません。私はテキスト領域が最大5行(テキストの量に応じて)に拡大し、より多くの場合はスクロールバーを表示します。 – kayasa

答えて

0

あなたは少しCSSでこれを達成することができ、かつmax-heightプロパティを使用して:

textarea { 
    overflow-y:scroll 
    max-height:100px; /* change to a height you see fit */ 
} 

をデフォルトの高さを設定しないことにより、テキスト領域が少ないあなたmax-heightより任意のコンテンツのために十分に高くなり、ときそれはそれを打つ、それはスクロールを開始します。

また、textareaからrows属性を削除してください。

+0

ありがとうございます。表示する単語が1つだけあっても、テキスト領域には複数の行が表示されます(行にはデフォルト値があるようです)。また、テキストが増加すると、テキスト領域をmax-heightに拡張せず、スクロールバーをデフォルトのサイズのテキスト領域に置きます。 – kayasa

+0

は 'rows'属性を取り去ります - テキストエリアはデフォルトで1行になります:) – Stuart

関連する問題