ページ

2014年4月9日水曜日

Twitter Bootstrap3で超簡単に現代風なかっこいいサイトを作ってみよう!今日から始めるレスポンシブデザイン。


おはようございます、龍世(@rt1031_bot)です。

大分前(適当)にtwitter Bootstrapがバージョン3になり、iOS7のようなフラットデザインに一新されました。


しかし、つい最近まで僕はずっとbootstrap2を使っていました。

理由は簡単。

「3とか色々変更点あるらしいな。ってか結構違うって言われてたしめんどくせww」








クズですね。


しかし、この度ホームページのデザインを依頼されたので折角の機会なのでbootstrap3を使ってみる事にしました。





bootstrap3の基本




公式サイトからbootstrapをダウンロードしましょう。

サイトはこちら→。英語ですが、リファレンスもこのサイトに載っています。


ダウンロードしたファイルの中にhtmlファイルを作ったら、そこにbootstrapを使う準備をします。

<head>
    
    
    
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet"></link>

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <h1>
Hello, world!</h1>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>


レスポンシブなbootstrapを使う場合は、これらのjsなどにアクセスする必要があるので、コピペでいいからこのようにしてください。


次に、今回使うbootstrapの技術の紹介。












  • レスポンシブナビゲーションバー(navbar)


















  • Thumbnails

















  • 画像のレスポンシブ化










  • 以上の三点です。


    まず、bootstrapにはグリッドシステムという概念があります。

    今までは

    <div class="span12">

    のように区切られていましたが、今回は

    <div class="col-xs-12 col-sm-6 col-md-8">


    と、画面の大きさ毎にグリッドの大きさを指定する事が可能になりました。

    このcol-○○-××について補足いたしますと、

    ○○の部分が各デバイスを表していて、その後ろの××がそのデバイスで表示されるときのグリッドの大きさになっています。

    詳しくは先ほど紹介した公式サイトをチェックしてみてください!


    • navbar


    さて、bootstrapに欠かせないものと言ったらやはりコレ。
    navbarのレスポンシブ化です。
    これはほとんど変更なしで、この通りです。

    <nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
    <button class="navbar-toggle" data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" type="button">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="https://www.blogger.com/blogger.g?blogID=4741807742539882977#">Brand</a></div>
    
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <ul class="nav navbar-nav">
    <li class="active"><a href="https://www.blogger.com/blogger.g?blogID=4741807742539882977#">Link</a></li>
    <li><a href="https://www.blogger.com/blogger.g?blogID=4741807742539882977#">Link</a></li>
    </ul>
    <form class="navbar-form navbar-left" role="search">
    <div class="form-group">
    <input class="form-control" placeholder="Search" type="text" />
    </div>
    <button class="btn btn-default" type="submit">Submit</button></form>
    </div>
    <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
    </nav>
    
    

    ポイントは、

    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">

    以下に記述されている項目が小さい画面で表示される時に、入れ子になってにまとめて表示されるので、ブランドなど、入れ子にしたくないものは上に書きましょうね!




    • Thumbnails


    各ページなどの見出しをつけたいときに使えるのがこのThumbnailsです。


    これも公式サイトのTips通り実装していきます。

    <div class="row">
      <div class="col-sm-6 col-md-4">
        <div class="thumbnail">
          <img src="画像ファイルのパス" alt="...">
          <div class="caption">
            <h3>Thumbnail label</h3>
            <p>やよいは可愛い</p>
            <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
          </div>
        </div>
      </div>
    </div>

    俺はbuttonがいらないのでbuttonを取り、画像と、h3にリンクを貼るようにしました。

    そこらへんはお好きにどうぞ。











  • 画像のレスポンシブ化







  • 最後に、画像をレスポンシブにする方法です。

    これがくそ簡単で、

    <img src="画像のパス" class="img-responsive">


    と、imgタグにimg-responsiveというクラスを付けるだけです。


    以上、これらとCSSを使い、サラッとHPを作ってみる事にしましょう!







    デモページ作るのん









    さて、では参りましょう。

    今回はCSSはめんどくさいのでhtmlファイルの中に記述しています。


    完成したページはこちら→


    まずはナビゲーションバーを実装。
    ここは特に何もせず、そのままです。

    <div class="row">
      <div class="col-xs-12">
       <nav class="navbar navbar-default" role="navigation">
        <div>
         <!-- Brand and toggle get grouped for better mobile display -->
         <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
           <span class="sr-only">Toggle navigation</span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Demo</a>
         </div>
    
         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
           <li><a href="#">menu</a></li>
           <li><a href="#">about</a></li>
           <li><a href="#">profile</a></li>
           <li><a href="#">link</a></li>
          </ul>
         </div>
        </div>
       </nav>
      </div>
     </div>
    
    スペースでなく、タブで区切っているので見にくいんですけど、勘弁w


    次に、ページの魂にもなるメインの画像。

    この画像などでサイトの印象がかなり変わってくると思います。今回はフリーの写真を拾ってきました。

    <div class="mainimg">
     <div class="container">
      <img src="img/top.jpg" class="img-responsive main"/>
     </div>
    </div>
    

    普通です。
    containerで真ん中に表示して、レスポンシブにしているだけです。

    <div class="col-sm-6 col-md-3"> 
     <div class="thumbnail">
       <a href="#"><img src="img/menu1.jpg" alt="…"></a>
         <div class="caption">
          <a href="#"><h3>ここに見出し</h3></a>
          <p>説明文とか。いらなければ削除</p>
       </div>
     </div>
    </div>

    これを一つのdivの中に4つ入れました。
    画像と見出しにリンクを貼ればいいかと思います。


    <div class="footer">
     <div class="container">
      <span>Copyright <a href="http://www.zan-nen.com">残念どっとこむ</a> All Rights Reserved.</span>
     </div>
    </div>

    最後にフッターを書いて終わり。

    あとはCSSでちょいちょい調節したりしてます。

    たったこれだけ、100行程度でも一応サイトは作れます。そう、TwitterBootstrapならね!

    実用化を考えるならば、後はリンク先の各ページを作るだけですね。

    くそ簡単なサイトですが、もっともっと作り込めばかっこいいサイトが作れます!それもお手軽に!

    カルーセルなどを入れても良かったかなと思っていますが、まぁそれはまたの機会に。


    ではまた!