CSS: resize: 要素の大きさを手動操作で変更する
概略
CSS の resize で div タグなどの大きさを手動操作で変更できます。
textarea タグのリサイズ
textarea タグでは初期表示で領域の大きさをドラッグ操作で変更できます。
textarea の右下にドラッグ操作に反応する領域があります。
textarea タグ
textarea のサイズ変更を禁止したい場合は CSS で resize: none; を設定します。
textarea { resize: none; }TestCSS_resize_textarea01.html
resize: none; で textarea タグのサイズ変更を禁止するサンプル。
div タグ、figure タグなどのリサイズ
div タグや figure タグなどのブロック要素 (display: block; の要素) は resize を設定することでドラッグ操作でサイズを変更できます。
resize: (下のどれかを指定); both : 水平方向と垂直方向のどちらもサイズを変更できるようにします。 horizontal : 水平方向だけサイズを変更できます。 vertical : 垂直方向だけサイズを変更できます。
このとき overflow の設定も必要です。 div などのタグは overflow の初期値が visible になっていますが、 visible の場合はサイズ変更できません。 auto や scroll など設定します。
.div1 { resize: both; /* div の大きさを変更可能にする。 */ overflow: auto; /* これも必要。visible の場合はリサイズできません。 */ ... }TestCSS_resize_div01.html
resize: both; で div タグのサイズを変更できるようにするサンプル。
img タグのリサイズ
img タグ (display: inline-block;) は resize で変更できないので、figure タグや div タグの中に img タグを格納して、figure や div に resize を設定します。
TestCSS_resize_figure_img01.htmlfigure タグの resize で img 画像の大きさを変更できるようにしたサンプル。
figure タグ
iframe タグのリサイズ
resize: both; だけでリサイズできます。
TestCSS_resize_iframe01.htmliframe の大きさを手動操作で変更する。 CSS の resize を設定します。
iframe タグ
table タグのリサイズ
Chrome や Edge では table の th などの要素も CSS の resize の設定でドラッグ操作で領域の大きさを変更することができます ただし、Firefox119 (2023) では対応していません。
TestHTML_table_input01.htmltable タグの表で列の幅を手動操作で変えるサンプル。 th タグ (見出し) の右下部分にドラッグ操作のリサイズに反応する領域があります。
table タグ (2) (工事中) 将棋やチェスの盤面をリサイズで任意のサイズにする。
HTML で将棋盤やチェスボードを表現する
CSS: 要素の大きさを画面に合わせて変更する
JavaScript で要素の大きさを変更する
複雑な処理の必要な Web アプリケーションでは JavaScript のマウスイベントを使って要素の大きさを変える話もあります。
TestJS_mouse_div_selectbox01.htmlマウス操作で範囲選択の div の枠を表示する。
JavaScript: マウスイベント処理
昔の Web ブラウザには CSS resize がなかったので JavaScript で処理していました。 現在では CSS で間に合う話は JavaScript を使わず CSS で済ませた方が簡単です。