2012-06-22 14 views
37

ブラウザでは、デフォルトでコーナーをドラッグしてテキスト領域のサイズを変更できます。このルールを他の要素(divなど)に適用できるかどうか疑問に思っていました。私はこの効果がjQuery draggableまたはjQuery-ui resizable関数を使用して達成できることを知っていますが、そのライブラリに頼るのを避けることができるなら、プレーンhtml/cssでやりたいと思います。このように動作させるためにdivに適用できるCSSルールはありますか?divのようにサイズ変更可能テキストエリア

その他の解決策がありましたら、聞いてください。

答えて

54

css3 resizeプロパティを使用します。

div { 
    resize: both; 
} 

resize: horizontalresize: verticalもあります。


ない現在のクロスブラウザはhttp://caniuse.com/#feat=css-resize

+6

、生憎それはどんなIEのバージョンで動作していません。 IEにそのようなresiseをサポートする方法はありますか? –

+8

あなたは 'overflow:auto;'を必要とするかもしれません – HEX

+1

これを行うと、すべてのサブ要素もハンドルを取得します。どうしてこれなの? –

28

あなたはCSS3を使ってこれを行うことができます。サイズ変更可能なオーバーフロースタイルを設定することにより、ユーザーがサイズ変更可能なdivタグを作成できます。 私はここで水平方向と垂直方向の両方にサイズを変更設定している:これは素晴らしいです

.isResizable { 
 
    background: rgba(255, 0, 0, 0.2); 
 
    font-size: 2em; 
 
    border: 1px solid black; 
 
    overflow: hidden; 
 
    resize: both; 
 
    width: 160px; 
 
    height: 120px; 
 
    min-width: 120px; 
 
    min-height: 90px; 
 
    max-width: 400px; 
 
    max-height: 300px; 
 
}
<div class="isResizable">The quick brown fox jumps over the lazy dog.</div>

+4

偉大な答え。あなたがjqueryを使わずに行うことが可能かどうか分かりますが、グリップをクリックしてサイズを変更すると、divの全体が表示されます。あなたがトピックを投稿するときにstackoverflowのように全体の底を取ることができます。 – Ced

関連する問題