【RWD】 固定+可変レイアウト演習
以下のテキストを使い、レスポンシブウェブデザインの固定+可変レイアウトの演習を行いました。
スマートフォンサイトのためのHTML5+CSS3 (Web Designing BOOKS)
- 作者: エ・ビスコム・テック・ラボ
- 出版社/メーカー: マイナビ
- 発売日: 2012/08/31
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 13回
- この商品を含むブログ (4件) を見る
サイドバーの大きさは変えたくないけど、メインコンテンツは可変させたい場合に使える手法です。
他のレイアウトと違うことは、サイドバーの大きさを固定化させるためにメインコンテンツの中にインナー要素を入れて、インナー要素にサイドバーの大きさ分ネガティブマージンを入れることで、メインコンテンツの幅を可変させることが出来ます。
960px 以上
959px~650px
649px 以下
続きからソースです。
HTML:
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>可変レイアウト+固定レイアウト</title> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="css/style.css"> <link href='http://fonts.googleapis.com/css?family=Maven+Pro:900,400' rel='stylesheet' type='text/css'> <!--[if lte IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!--[if lte IE 9]> <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script> <![endif]--> </head> <body> <div id="container"> <header> <nav> <ul> <li><a href="#">HOME</a></li> <li><a href="#">CATEGORY</a></li> <li><a href="#">ABOUT</a></li> <li><a href="#">CONTACT</a></li> </ul> </nav> <div id="site"> <h1>PICKUP<span>STREAM</span></h1> <p>Comfort, Delightful, Refreshing, Time Produce</p> </div> </header> <div id="content"> <div id="content-innner"> <section class="post"> <a href="#"> <div class="date"><span>1</span> AUG</div> <h2>風車と風の関係</h2> <p><img alt="" src="img/windmill_thumb.jpg"> 風車は風を受けて回転します。このとき、効率よく風を受けるためには、風上の向かって真正面をむかなければなりません。そのため、風車は首が回るようになっており、常に真正面から風を受けることができるようになっています。この・・・</p> <p class="more">READ MORE</p> </a> </section> <section class="post"> <a href="#"> <div class="date"><span>28</span> JUL</div> <h2>風車と風の関係</h2> <p><img alt="" src="img/sand_thumb.jpg"> 海岸には砂や貝殻しかないように思ってしまいますが、良く見ると草花も生えていることがわかります。ただし、海水や潮風、強い日差しなどの影響で、大きく育つものは見当たりません。その多くは小さく、地を這って伸びています。・・・</p> <p class="more">READ MORE</p> </a> </section> <section class="post"> <a href="#"> <div class="date"><span>12</span> JUL</div> <h2>ツルを伸ばしてどこまでも</h2> <p><img alt="" src="img/leaf_thumb.jpg"> ツル植物は太い木の幹に巻きつき、どんどんとツルを伸ばしていきます。太陽の当たる方向に葉をつけ、枝を伸ばしていくたくましさは見習いたいものです。遠くから見ると細く見えるツルも、近くで見ると意外と太く、簡単に切ることは・・・</p> <p class="more">READ MORE</p> </a> </section> <section class="post"> <a href="#"> <div class="date"><span>1</span> AUG</div> <h2>色とりどりの絨毯</h2> <p><img alt="" src="img/flower_thumb.jpg"> 原生花園では今年も色とりどりの花が咲いています。特に今年は原色の色鮮やかな花がたくさん咲いていますので、週末には多くの人が訪れ、花を楽しんでいます、花の見ごろは来週半ばごろまで続くそうですので、時間を作って行ってみ・・・</p> <p class="more">READ MORE</p> </a> </section> </div><!--/#content-inner--> </div><!--/#content--> <div id="sidebar"> <div class="ad"> <img alt="広告" src="img/ad.jpg"> </div> <div class="menu"> <h3>CATEGORIES</h3> <ul> <li><a href="">山と森林</a></li> <li><a href="">海と海岸と空</a></li> <li><a href="">都市と建築</a></li> <li><a href="">地下</a></li> </ul> </div> <div class="menu"> <h3>RECENT POSTS</h3> <ul> <li><a href="">海岸のデコレーション</a></li> <li><a href="">風車と海風の関係</a></li> <li><a href="">ツルを伸ばしてどこまでも</a></li> <li><a href="">色とりどりの絨毯</a></li> <li><a href="">休日に買い物に行くなら</a></li> <li><a href="">構想ビルと風の関係</a></li> </ul> </div> </div><!--/#sidebar--> <footer> <p>PICKUP STREAM</p> <small>Copyright © PICKUP STRAM, all rights reserved.</small> </footer> </div><!--/#container--> </body> </html>
CSS:
@charset "utf-8"; /* reset */ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0; padding:0; } article,aside,details,figcaption,figure, footer,header,hgroup,menu,nav,section {display:block;} ul { list-style: none; } img { border: none; vertical-align: bottom; } a { text-decoration: none; } /* layout */ body{ margin: 0 10px; font-family: 'Hiragino Kaku Gothic Pro', Meiryo, sans-serif; } #container{ width: 960px; margin: auto; } header{ margin-bottom: 30px; } nav{ font-size: 14px; font-family: 'Maven Pro', Helvetica, Arial, sans-serif; overflow: hidden; background: #000; } nav li{ float: left; width: 120px; } nav li a{ display: block; padding: 5px 0; border-right: solid 1px #fff; color: #fff; text-align: center; } nav li a:hover{ background: #63a2c6; } header{ width: 960px; height: 280px; background:url(../img/seagull.jpg) left bottom; } #site{ font-family: 'Maven Pro', Helvetica, Arial, sans-serif; background: rgba(255,255,255,0.5); display: inline-block; padding: 10px 20px; margin-top: 30px; } #site h1{ font-size: 50px; line-height: 1; } #site h1 span{ font-weight: normal; } #content{ width: 630px; float: left; } .date{ float: left; background: #537685; padding: 5px 15px 8px; margin: 0 10px 5px 0; text-align: center; font-family: 'Maven Pro', Helvetica, Arial, sans-serif; font-weight: bold; font-size: 14px; color: #fff; } .date span{ display: block; font-size: 20px; line-height: 1; } .post{ border: solid 1px #aaa; margin-bottom: 20px; } .post a{ display: block; padding: 10px; overflow: hidden; color: #000; } .post a:hover{ background: #ddd; background: -webkit-gradient(linear,left top, left bottom, from(#333), to(#ddd)); background: -webkit-linear-gradient(#fff 0%, #ddd 100%); background: -moz-linear-gradient(#fff 0%, #ddd 100%); background: -o-linear-gradient(#fff 0%, #ddd 100%); background: -ms-linear-gradient(#fff 0%, #ddd 100%); background: linear-gradient(#fff 0%, #ddd 100%); } .post h2{ font-size: 22px; border-bottom: solid 1px #aaa; margin: 6px 0 15px; padding-bottom: 3px; } .post p img{ float: left; margin-right: 10px; clear:left; } .post p{ font-size: 14px; line-height: 1.6; clear: left; } .post #sidebar{ width: 300px; float: right; } .post .more{ background: url(../img/more_gray.png) no-repeat center right; text-align: right; padding-right: 30px; color: #888; clear: none; } #sidebar{ width: 300px; float: right; } .ad::before{ content: 'PROMOTION'; display: block; color: #fff; background: #537685; margin-bottom: 10px; } .ad{ text-align: center; } .ad img{ width: 300px; margin-bottom: 20px; } .menu{ background: #537685; padding: 15px; margin-bottom: 20px; } .menu h3{ font-family: 'Maven Pro', Helvetica, Arial, sans-serif; font-size: 22px; font-weight: normal; color: #fff; margin-bottom: 25px; } .menu ul{ border-top: solid 1px #aaa; } .menu li{ border-bottom: solid 1px #aaa; } .menu li a{ display: block; font-size: 14px; color: #fff; padding: 10px 0; } .menu li a:hover{ background:#63a2c6; } footer{ clear:both; font-family: 'Maven Pro', Helvetica, Arial, sans-serif; color: #fff; background-color: #333; padding: 10px 10px 20px; } footer small{ font-size: 12px; font-weight: bold; display: block; } @media screen and (min-width:650px) and (max-width:979px) { #container{ width: 100%; } header{ width: 100%; height: 280px; background-size: 100% auto; } #content{ width: 100%; margin-right: -330px; } #content-innner{ margin-right: 330px; } .post img{ max-width: 35%; } } @media screen and (max-width:649px){ #container{ width: 100% } header{ margin-bottom: 15px; width: 100%; height: 140px; background-size: 100% auto; } nav{ font-size: 12px; } nav ul li{ width: 25%; } nav ul li:last-child a{ border: none; } #site{ display: block; text-align: center; } #site h1{ font-size: 30px; } #site p{ font-size: 12px; } #content{ width: 100%; float: none; } .post img{ max-width: 35% } .date { font-size: 12px; } .date span{ font-size: 12px; } .post h2{ font-size: 18px; } #sidebar{ width: 100%; float: none; } }