scssを使ってレスポンシブデザインをしているのですがwidthの値を元にheightを計算する方法が分かりません。
scss
1@mixin GoldenRatio($maxsize: 100%, $split: 1) { 2 width : calc( #{$maxsize} / #{$split} ); 3 height: calc( #{$maxsize} / ( #{$split} * 1.618)); 4 object-fit: cover; 5 @content; 6} 7 8div.box { 9 width: 90%; 10 img { 11 @include GoldenRatio(); 12 } 13}
現在このようにして100%のwidthを指定してその数値を利用して
黄金比率のheightを指定しようとしているのですがパーセントだと
heightが指定できないためwidthの100%の値をpxに換算してheightに
指定したいです。
vwかemでは指定できるのですがemではデバイスサイズに合わせられなくて
vwでは親要素の幅を無視してしまうので%で考えています。
もしくは100%の値をemに換算してそのemを使用する方法でもいいのかな?とは
思うのですが調べてもpxを%に換算する方法などしか見つけられなくて
困っています。
どなたかお知恵をお貸しいただけないでしょうか?
◆追記
ご回答ありがとうございます!ご教授いただいた方法で高さを黄金比率を
保ったまま配置する事ができました。
SCSS
1@mixin GoldenRatio($maxsize: 100%, $split: 1) { 2 position: relative; 3 width: calc( #{$maxsize} / #{$split} ); 4 @content; 5 &::after { 6 display: block; 7 padding-top: calc( #{$maxsize} / ( #{$split} * 1.618 )); 8 content: ""; 9 } 10 img { 11 position: absolute; 12 width: 100%; 13 height: 100%; 14 object-fit: cover; 15 @content; 16 } 17}
この様な形で実装できました!ありがとうございましたm(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/06 05:15