Safariでtextareaサイズ変更ハンドルを非表示にする


97

アプリケーションでtextareaコンポーネントを使用しており、その高さを動的に制御しています。ユーザーが入力すると、十分なテキストがある場合は常に高さが増加します。これは、IE、Firefox、Safariで正常に動作します。

ただし、Safariでは、右下に「ハンドル」ツールがあり、ユーザーはクリックしてドラッグすることでテキストエリアのサイズを変更できます。私はまた、stackoverflow Ask a Questionページのtextareaでこの問題に気づきました。このツールは混乱を招き、基本的に邪魔になります。

それで、とにかくこのサイズ変更ハンドルを隠す方法はありますか?

(「ハンドル」が正しい単語かどうかはわかりませんが、もっと良い用語を考えることはできません。)

回答:


177

CSSでサイズ変更動作をオーバーライドできます。

textarea
{
   resize: none;
}

または単に

<textarea style="resize: none;">TEXT TEXT TEXT</textarea>

有効なプロパティは、両方、水平、垂直、なしです。


22
ここでは厳密には関係ありませんが、Safariはまた、min-height、max-height、min-width、およびmax-width CSSプロパティを尊重して、サイズ変更を有効のままにしますが、サイズ変更できる距離に制限を設けます。
stevemegson、2009

1
ありがとうございました!これと同じ質問をしようとしていました:)
アレックス

resize:noneを設定した後にホバーに表示したい場合はどうすればよいですか?
マイケルフォレスト

@Michael Forrest:textarea:hover {resize:inherit!important; }?私はそれを試したことはありません、ただの推測です。
Tamas Czinege

7
注意点の1つ:ユーザーがのサイズを変更<textarea>できないようにすることは、ユーザビリティの問題になる可能性があります。resize:vertical;多くの場合、設定の方が適しています。それはあなたのレイアウトを台無しにしてはいけません、そしてそれはユーザーにより大きなコントロール感を与えます。
Web_Designer

2

次のCSSルールを使用して、すべてのTextArea要素に対してこの動作を無効にします。

textarea {
    resize: none;
}

一部(すべてではない)のTextArea要素に対して無効にしたい場合は、いくつかのオプションがあります(このページのおかげです)。

特定無効にするTextAreanameに属性セットをfoo(すなわち、<TextArea name="foo"></TextArea>):

textarea[name=foo] {
    resize: none;
}

または、IDを使用します(つまり、<TextArea id="foo"></TextArea>):

#foo {
    resize: none;
}

これは、TextAreaコントロールにサイズ変更ハンドルを追加するWebKitベースのブラウザー(SafariやChromeなど)にのみ関連することに注意してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.