HTMLとCSSのみでパララックス風ページを作る
jQueryのプラグインを駆使すれば、割と簡単に作成することができますが、
もっと簡単に、それっぽく見えればいいという方向けに、HTMLとCSSのみで実装してみました。
以下ソース。
まずはCSS。
@charset "utf-8";
/* HTMLとBODYのマージン、パディングを0にして高さを100%にしておく */
/* reset */
html
,body {
margin:0px;
padding:0px;
height:100%;
}
/* 大枠となるクラス */
.wrapper {
height:100%; /* 高さ100% */
background:fixed 50% no-repeat; /* 背景指定。50%の位置に固定表示してリピートなし */
background-size:cover; /* ブラウザのサイズに画像サイズを合わせる */
position:relative; /* ポジション指定(日付を指定位置に表示するため)*/
}
/* 以下、ボックス指定。背景画像を変えるだけの指定____________________________ */
.first {
background-image:url('../img/free/a.jpg');
}
.second {
background-image:url('../img/free/b.jpg');
}
.third {
background-image:url('../img/free/c.jpg');
}
.fourth {
background-image:url('../img/free/d.jpg');
}
.fifth {
background-image:url('../img/free/e.jpg');
}
.sixth {
background-image:url('../img/free/f.jpg');
}
.seventh {
background-image:url('../img/free/g.jpg');
}
/* ___________________________________________________________________________*/
/* 日付表示用 ________________________________________________________________*/
.day {
position:absolute; /* ポジション指定 */
top:10%;
left:10%;
width:100px;
height:100px;
background-color:rgba(0,0,0,0.4); /* 背景黒で、背景色のみ40%透過指定 */
color:#ffffff;
font-size:60px;
border-radius: 50%; /* 角丸50%に指定することで円表示 */
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
display:table; /* 文字を上下左右センターにするため、テーブルにする */
}
.day span {
display:table-cell; /* テーブルセル */
width:100%;
text-align:center;
vertical-align:middle;
}
/* ___________________________________________________________________________*/
続いてHTML。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <link type="text/css" href="./css/style.css" rel="stylesheet" /> </head> <body> <!-- 1つめ --> <div class="wrapper top first"> <div class="day"> <span> 日 </span> </div> </div> <!-- 2つ目 --> <div class="wrapper second"> <div class="day"> <span> 月 </span> </div> </div> <!-- 3つめ --> <div class="wrapper third"> <div class="day"> <span> 火 </span> </div> </div> <!-- 4つめ --> <div class="wrapper fourth"> <div class="day"> <span> 水 </span> </div> </div> <!-- 5つめ --> <div class="wrapper fifth"> <div class="day"> <span> 木 </span> </div> </div> <!-- 6つめ --> <div class="wrapper sixth"> <div class="day"> <span> 金 </span> </div> </div> <!-- 7つめ --> <div class="wrapper seventh"> <div class="day"> <span> 土 </span> </div> </div> </body> </html>
とりあえず1週間のレシピっぽく表示してみました。
ボックスの数を増やしたり減らしたりしてもいいし、
cssのwrapperの高さを90%とかにすると、最初からちらっと次のボックスが見えるようにできます。