サイドメニューを固定するレイアウトページです。
レスポンシブ使用になっているので、横幅768px以上のブラウザで確認してね。
○index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous"> <title>タイトルだよ</title> <meta name="description" content="ディスクリプションだよ"> <meta name="keywords" content="キーワード1, キーワード2"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/common.css"> <link rel="stylesheet" href="css/index.css"> </head> <body> <!--header--> <header> <nav> <ul> <li><a href="#">トップ</a></li> <li><a href="#">コンテンツ1</a></li> <li><a href="#">コンテンツ2</a></li> </ul> </nav> </header> <main ontouchstart=""> <div class="block"></div> <div class="block gray"></div> <div class="block green"></div> <div class="block red"></div> </main> <!--footer--> <footer> <p class="footerText">フッターだよ</p> <script src="js/jquery-2.0.0.min.js"></script> <script src="js/common.js"></script> </footer> </body> </html>
・header、main、footerをわけて作成してください
○header.css
/* header */ header { background-color: #ff8d8d; } @media screen and (min-width: 768px) { header { position: fixed; top: 0; width: 200px; } } li a { text-decoration: none; color: #fff; }
・メニューを左側に固定するので、header全体にpositon:fixed;を指定する。
また、メニューの幅を指定する。
○index.css
@media screen and (min-width: 768px) { main { margin: 0 0 0 200px; } } .block { width: 100%; height: 200px; background-color: #74ffdb; } .block.gray { background-color: #dfdfdf; } .block.green { background-color: #38ff38; } .block.red { background-color: #ffc1c1; }
・headerにposition:fixed;を指定いるので、その右隣にmainをもってきたいのでmargin:0 0 0 200px;を指定し、mainコンテンツの左にheaderのメニュー幅を確保します。
○footer.css
/* footer */ footer { background-color: #f8ff38; } @media screen and (min-width: 768px) { footer { margin: 0 0 0 200px; } } .footerText { height: 200px; color: #444; }
・footerもメインコンテンツと同じようにしたいので、mainと同様にmarginを指定します。
あとは、通常通りコーディングしていけば、おっけーです。
今回は以上です。