Railsからはじめるプログラミング日記

駆け出しプログラマー(主にRuby on Rails)の業務で役立ったコードをメモしていくブログです。自分だけでなく誰かの役に立てれば本望です。

【CSS】ボックスのサイズをドラッグで自由に変更する

divなどのタグで囲まれたボックスのサイズを手動で変更したときは、「resize:both」を使います。

Can I useによると、主要ブラウザは軒並み対応してますね。
ただ、スマートフォンのブラウザはまだ怪しい感じです。 f:id:oe526:20181022095259p:plain

基本的な使い方

ボックスの右下に斜めの線が表示されていると思うので、ドラッグすると好きなサイズに調整できます。

resizeと一緒にoverflow: hidden;を使わないと斜め線が出てこないので注意が必要です。

See the Pen BqPLRe by ooe (@oe526) on CodePen.

上の例ではresize: both;としていますが、これは幅と高さ両方を自由に変更可能にするという指定です。
他の指定は以下に記述しておきます。

  • none
    リサイズ機能をなくす
  • both
    幅、高さともにリサイズできる
  • horizontal
    幅のみリサイズできる
  • vertical
    高さのみリサイズできる
  • inherit
    親要素の値を継承

応用編

業務中、videoタグで埋めた動画のサイズを手動で変更したという依頼がきたことがありました。

videoタグに直接resize: both;を指定してみましたがうまくいかなかったのでその時の解決法を載せます。

【html】

<div class="box">
  <video src="動画ファイルのパス"></video>
</div>

【css】

div {
  width: 200px;
  height: 200px;
  border: 1px solid #999;
  resize: both;
  overflow: hidden;
}
video {
    width: 100%;
    height: 100%;
}

videoをdivでくくり、ボックスのサイズをdivで決めてしまう。
videoのサイズはwidth: 100%; height: 100%;でdivに依存させる。
divの方にresizeを指定すればvideoのサイズは外側のdivに引っ張られ、擬似的にリサイズが可能という寸法です。

筆者オススメ技術書