先日、縦長の画像をレスポンシブ(可変)対応で正方形にトリミングして表示する、というミッションがありましたので備忘録がてら書きます。 スマホの画像を使いたいが縦長すぎるので可変トリミングして欲しい、という時に役立ちそうです。 イメージがわかない方は下の画像(gifアニメーション)を御覧ください。 photo by PAKUTASO コードは以下のとおりです。 ポイントはbefore擬似クラスのpadding-top:100%ですね。 これで横幅に対する高さを計算しています。 このpadding-topの値はボックスのwidthとheightの比率をもとに以下の式で計算します。 縦幅比率 / 横幅比率 * 100 ちなみに、正方形ではなく横縦3:2の四角形でトリミングしたいときは、 2 / 3 * 100 = 66.6666・・・ であるため、padding-topは66.667%と設定するだ