-
ID:7TTeY1 さんの質問

https://mtnstandard.com

上のサイトの用にフルスクリーンのメインイメージの下に次の要素(reservationsの部分)を作るにはどうしたらいいのでしょうか?
ただ単にマージンのマイナス調整ではなく、ブラウザのウィンドウサイズのリサイズに応じて常に一定サイズ保ったデザインの作り方をお願いします。

みんなの回答 1 件

ID:Rq3Sj9 さんの回答

ご紹介のサイトはJavascriptを使ってウィンドウサイズからdivの高さをリアルタイムで計算させてるみたいです。

IE9以降対応になりますが、cssのcalcを使えばもっと簡単に実装できます。
詳しくはリンク参照で。

余談ですが、要素の高さに%を使う場合、htmlとbodyにもheight:100%を指定しないと高さの計算がうまくできなくなります。
同じくIE9以降限定ですが、高さの単位として「vh」を使うと最初からviewport基準で高さを計算してくれます。
100vh=viewportの高さの100%です。

CSSで計算式を可能にするcalc()ファンクション

https://w3g.jp/blog/css3_calc_function
ID:xbodX0

background-size: coverでフルスクリーンを実装した場合はcalcが使えないようなのですが、この場合どう実装すればいいのでしょうか?
フルスクリーンを維持したまま直ぐ下の要素の一部を常に見える様にするのが目的です。

ID:Rq3Sj9

background-size:coverを指定した要素にheight:calc(100vh - 50px)を指定してみましたが、問題なく表示されました。
最新のFirefox及びChromeで確認しました。

ID:Rq3Sj9

まさかと思いますけど、bodyに背景指定してないですよね?

ID:xbodX0

html には height 100%; overflow: hidden。
body には overflow-y: scroll; overflow-x; hidden; height: 100%を指定しています。
div にクラスをあててcssでbackground urlで呼び出しています。
div のクラスにはwidth:100%; background-position: center center; backgorund-size: cover; background-attachment: fixed; min-height: 800px; height: autoからheight:calc(100vh - 50px)に変更しましたが表示されません。
その直ぐ下にあるsectionの一部をウィンドウサイズに合わせて常に表示するのが目的です。

最終更新日:2015-08-05 (1,635 views)

関連するトピックス

ページ上部に戻る