前提・実現したいこと
画像(女性と赤ちゃんの写真)を目標のように配置したいです。
最初は幅や高さをpxで指定していましたが、vwやvhで指定しようとすると画像の位置がずれたりしているようです。
スマホ版に関してはタブレット版が崩れる前はできていたのですが、タブレット版に戻ると崩れていたので修正を加えたところ、またスマホ版に戻るとスマホ版も崩れていました。
私の考えでは、タブレット版の幅を修正したりしたためにスマホ版も基準がまた変わり崩れたのかと考えています。
2~3日くらい幅ができたら画像の拡大具合が崩れたり、拡大具合をいじったら幅が崩れたりと試行錯誤を重ねましたが、なかなか解決できず困っています。ご教授よろしくお願い致します。
vwやvhの参考にはこちらを参考にしました。
例えばスマホが[375×667]の場合は、全体の幅を[375px]、要素の幅(今回だと該当の写真)を[287px]と入力し、出てきた[76.53vw]をwidthとして設定。
というようにやっています。
該当のソースコード
HTML
1 <section id="fv"> 2 3 <div class="wrapper"> 4 <div class="fv-wrapper"> 5 <img src="img/the-honest-company-uM-WXMr0YXc-unsplash.png" alt="" class="fv-img"> 6 </div> 7 8 <div class="fv-black"></div> 9 <div class="copy"> 10 <p class="sub-copy">デザインで人を笑顔にする会社</p> 11 <p class="company">DIGSMILE INC.</p> 12 <p class="main-copy">DESIGN<br>FOR <br>SMILE.</p> 13 </div> 14 15 </div> 16 </section>
該当のソースコード
CSS
1/*fv*/ 2#fv { 3 position: relative; 4 height: 1367px; 5} 6#fv .wrapper { 7 display: flex; 8} 9#fv .fv-wrapper { 10 width: 76.39vw; 11 text-align: left; 12 z-index: 2; 13} 14#fv .fv-wrapper .fv-img { 15 16 background-position: center; 17 object-fit: none; 18 filter: brightness(60%); 19} 20#fv .fv-black { 21 width: 780px; 22 height: 740px; 23 background-color: #333333; 24 z-index: 0; 25 position: absolute; 26 right: 0; 27 margin-bottom: 120px; 28} 29 30 31/*fv タブレット*/ 32 33@media screen and (max-width: 1100px) { 34 #fv { 35 position: relative; 36 height: 1024px; 37 } 38 #fv .wrapper { 39 display: flex; 40 width: 100%; 41 } 42 #fv .fv-wrapper { 43 text-align: left; 44 z-index: 2; 45 width: 30vw; 46 height: 100vh; 47 overflow: hidden; 48 position: relative; 49 } 50 #fv .fv-wrapper .fv-img { 51 transform: scale(1.4); 52 top: 0; 53 } 54 #fv .fv-black { 55 width: 73.18vw; 56 height: 100vh; 57 background-color: #333333; 58 z-index: 0; 59 position: absolute; 60 right: 0; 61 62 }} 63 64/*fv スマホ版*/ 65@media screen and (max-width: 767px) { 66 #fv { 67 position: relative; 68 height: 100vh; 69 } 70 #fv .wrapper { 71 display: flex; 72 width: 100%; 73 } 74 #fv .fv-wrapper { 75 text-align: left; 76 z-index: 1; 77 overflow: hidden; 78 position: relative; 79 } 80 #fv .fv-wrapper .fv-img { 81 object-position: top; 82 transform: scale(1); 83 } 84 #fv .fv-black { 85 width: 75.47vw; 86 height: 667px; 87 background-color: #333333; 88 z-index: 0; 89 position: absolute; 90 right: 0; 91 /*margin-bottom: 80px;*/ 92 /* margin-bottom: 120px;*/ 93 } 94}
試したこと
①pxで指定してみる
→最初はpxだけだったのでできていたようですが、vwが混在するためかできないところだけ直しても特に変化がないように見えます。
②検証ツールを見ながら、該当箇所のものをひとつずつ指示を消してみて、どこを触ったら目標の配置になりそうか試してみる
補足情報(FW/ツールのバージョンなど)
OS:Windows
エディタ:Brackets
ブラウザ:クローム
目標(上から、タブレット版、スマホ版)
現状(上から、タブレット版、スマホ版)
現状コード
CSS
1@charset "UTF-8"; 2/*カラーコード*/ 3/*mixin*/ 4html { 5 font-size: 62.5%; 6} 7html body { 8 line-height: 1.8; 9 font-size: 16px; 10 font-family: "Montserrat", "Noto Sans JP", sans-serif; 11 width: 100%; 12} 13html body img { 14 max-width: 100%; 15 vertical-align: bottom; 16} 17html body h2 { 18 font-size: 3.2rem; 19 font-weight: bold; 20} 21html body a { 22 text-decoration: none; 23 color: #FFFFFF; 24} 25html body section { 26 margin: 0 auto; 27 text-align: center; 28} 29/*ヘッダー*/ 30header { 31 position: absolute; 32 width: 100%; 33 /*共通部とここでwidth:100pxで広がる*/ 34 z-index: 10; 35} 36header .header-wrapper { 37 padding: 30px 58px; 38 display: flex; 39 justify-content: space-between; 40} 41header .header-wrapper .header-nav { 42 display: flex; 43} 44header .header-wrapper .header-nav .header-list { 45 padding-right: 7px; 46} 47 48/*fv*/ 49#fv { 50 position: relative; 51 height: 1367px; 52} 53#fv .wrapper { 54 display: flex; 55} 56#fv .fv-wrapper { 57 width: 76.39vw; 58 text-align: left; 59 z-index: 2; 60} 61#fv .fv-wrapper .fv-img { 62 background-position: center; 63 object-fit: none; 64 filter: brightness(60%); 65} 66#fv .fv-black { 67 width: 780px; 68 height: 740px; 69 background-color: #333333; 70 z-index: 0; 71 position: absolute; 72 right: 0; 73 margin-bottom: 120px; 74} 75 76/*レスポンシブ*/ 77/*タブレット版*/ 78@media screen and (max-width: 1000px) { 79 html body h2 { 80 font-size: 3.9rem; 81 } 82 83 /*ヘッダー タブレット*/ 84 header .header-wrapper { 85 padding: 30px 30px; 86 display: flex; 87 justify-content: space-between; 88 height: 20px; 89 } 90 header .header-wrapper .header-log .site-log { 91 height: 20px; 92 } 93 header .header-wrapper .header-nav { 94 display: flex; 95 } 96 header .header-wrapper .header-nav .header-list { 97 padding-right: 7px; 98 } 99 100 /*fv タブレット*/ 101 #fv { 102 position: relative; 103 height: 1024px; 104 } 105 #fv .wrapper { 106 display: flex; 107 width: 100%; 108 } 109 #fv .fv-wrapper { 110 text-align: left; 111 z-index: 2; 112 width: 78.13vw; 113 height: 86.94vh; 114 overflow: hidden; 115 position: relative; 116 } 117 #fv .fv-wrapper .fv-img { 118 transform: scale(1.4); 119 } 120 #fv .fv-black { 121 width: 73.18vw; 122 height: 100vh; 123 background-color: #333333; 124 z-index: 0; 125 position: absolute; 126 right: 0; 127 /*margin-bottom: 80px;*/ 128 /* margin-bottom: 120px;*/ 129 } 130} 131/*スマホ版*/ 132@media screen and (max-width: 767px) { 133 html body h2 { 134 font-size: 2.8rem; 135 width: 44.8vw; 136 } 137 138 /*ヘッダー*/ 139 header .header-wrapper { 140 padding: 15px 19px; 141 display: flex; 142 justify-content: space-between; 143 z-index: 10; 144 } 145 header .header-wrapper .header-log { 146 width: 189px; 147 height: 20px; 148 } 149 header .header-wrapper .header-nav { 150 display: flex; 151 } 152 header .header-wrapper .header-nav a { 153 font-size: 1.2rem; 154 } 155 header .header-wrapper .header-nav .header-list { 156 padding-right: 7px; 157 } 158 159 /*fv*/ 160 #fv { 161 position: relative; 162 height: 100vh; 163 } 164 #fv .wrapper { 165 display: flex; 166 width: 100%; 167 } 168 #fv .fv-wrapper { 169 text-align: left; 170 z-index: 1; 171 overflow: hidden; 172 position: relative; 173width:76.53vw; 174 } 175 #fv .fv-wrapper .fv-img { 176 object-position: top; 177 transform: scale(1); 178 } 179 #fv .fv-black { 180 width: 75.47vw; 181 height: 667px; 182 background-color: #333333; 183 z-index: 0; 184 position: absolute; 185 right: 0; 186 } 187}
回答1件
あなたの回答
tips
プレビュー