###実現したいこと
高さ不定の.contents
について、それを.modal
の真ん中に置きつつ、.modal
のスクロールで全て見えるようにしたいです。
###発生している問題
.contents
をdisplay:flex;
等で真ん中に置きました。
しかし.contents
が画面の高さを超えると、上の方が見えなくなってしまいます。
###該当のソースコード
このような簡単なコードですが、問題の解決が大変困難です。
html
1<div class="modal"> 2 <div class="contents"></div> 3</div>
css
1.modal { 2 position: fixed; 3 top: 0; right: 0; bottom: 0; left: 0; 4 width: 100vw; 5 z-index: 100; 6 display: flex; 7 align-items: center; 8 justify-content: center; 9 overflow: hidden scroll; 10 background: green; 11} 12.contents { 13 position: relative; 14 width: 200px; 15 height: 1000px; /* 高さは不定 */ 16 padding: 0 10px; 17 background: lime; 18 display: flex; 19 align-items: center; 20 justify-content: center; 21}
###試したこと【CSS編】
まずdisplay:flex;
をやめ、真ん中に置く他の方法としてCSSのvertical-align
およびtransform
プロパティを試しました。
しかしやはり上の方が見えなくなってしまうことは変わりありませんでした。
###試したこと【JS編】
次にJSで「.contents
の高さを測り、画面の高さを超えた場合にだけ.modal
のalign-items: center;
を外す」という方法を試しました。
これで問題はなんとか解決はしたのですが、これをCSSで実現できないかと思い質問させて頂きました。
下は見えるのに上が見えなくなってしまう原因も知りたいです。
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー