レスポンシブWebデザイン - 演習(2)
レスポンシブWebデザイン - 演習(2)
- ブラウザの高さを取得する単位「vh(viewport height)」
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>フルスクリーンレイアウト</title> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <style> html, body { margin:0; padding:0; } .box { box-sizing: border-box; } .boxA { width:50%; height:50vh; float:left; overflow:hidden; background-color: #E6F7D9; border: 16px solid #A2E65A; } .boxB { width:33.33%; height:50vh; float:left; overflow:hidden; background-color: #E9F5FF; border: 16px solid #77C9F0; } </style> </head> <body> <div id="container"> <div class="block"> <div class="box boxA"></div> <div class="box boxA"></div> </div> <div class="block"> <div class="box boxB"></div> <div class="box boxB"></div> <div class="box boxB"></div> </div> </div> </body> </html>
headerを追加
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>フルスクリーンレイアウト</title> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <style> html,body { margin:0; padding:0; } .box, .header { box-sizing: border-box; } .boxA { width:50%; height:50vh; float:left; overflow:hidden; background-color: #E6F7D9; border: 16px solid #A2E65A; } .boxB { width:33.33%; height:50vh; float:left; overflow:hidden; background-color: #E9F5FF; border: 16px solid #77C9F0; } .header { width: 160px; height: 160px; background-color: #FFF; border: 16px solid #898989; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; } </style> </head> <body> <div id="container"> <header class="header"></header> <div class="block"> <div class="box boxA"></div> <div class="box boxA"></div> </div> <div class="block"> <div class="box boxB"></div> <div class="box boxB"></div> <div class="box boxB"></div> </div> </div> </body> </html>
スマートフォンに対応させる
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>フルスクリーンレイアウト</title> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <style> html,body { margin:0; padding:0; } .box, .header { box-sizing: border-box; } .boxA { width:50%; height:50vh; float:left; overflow:hidden; background-color: #E6F7D9; border: 16px solid #A2E65A; } .boxB { width:33.33%; height:50vh; float:left; overflow:hidden; background-color: #E9F5FF; border: 16px solid #77C9F0; } .header { width: 160px; height: 160px; background-color: #FFF; border: 16px solid #898989; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; } @media screen and (max-width:767px) { .boxA, .boxB { width:100%; } .header { position: static; } } </style> </head> <body> <div id="container"> <header class="header"></header> <div class="block"> <div class="box boxA"></div> <div class="box boxA"></div> </div> <div class="block"> <div class="box boxB"></div> <div class="box boxB"></div> <div class="box boxB"></div> </div> </div> </body> </html>