とりあえず、最近の沖縄の夜と朝の寒暖差に体調崩しがち
なのは、僕だけではない、、、はず。
PM11時くらいに薄着で寝ると、朝方の寒さに
やられるわけです。恐ろしい話です。
それは、そーと今回は整ったサイトを作るための技術Bootstrapをご紹介。
Bootstrapとは
Bootstrapというのは簡単にサイトか作成できるcssフレームワークです。
フレームワークってなんぞや?
日本語でざっくり訳すと枠組みということです。
ある決まりにしたがってコードを書くと、簡単に整った
サイトを構築することが可能です。
Bootstrapはどこで利用されているの?
今回利用するBootstrapはcssフレームワークでは
世界中で広く利用されています。
例えば
EC-CUBE
主に日本国内で開発されている、ECサイト構築用プログラムです。
フロントデザインにBootstrapを利用していて、店舗の特色にあったカスタマイズ
をすることが可能です。
3000店舗以上で利用されているそうです。
オーダーメイドで紙を仕立ててくれるという変わったお店です。
ページ背景も紙を感じられるような画像をりようしていてとてもシンプルでかっこいいサイトです。
Bootstrapでレスポンシブ対応
それでは実際に利用してみましょう。
bootstrapを利用するためにはbootstrapの機能を読み込む必要があります。
1 2 3 4 5 6 7 8 9 10 |
<!-- BootstrapのCSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <!-- bootstrapで利用するjs達 --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> |
続いてhtmlをvs codeで開いて次のHTMLをコピペしてみましょう。
先ほど書いたBootstrapのコードも含まれていますんで、丸ごとコピーでOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!doctype html> <html lang="ja"> <head> <!-- bootstrapを使うのに必要な設定 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- BootstrapのCSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <!-- bootstrapで利用するjs達 --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> </body> </html> |
上のHTMLをChromeで確認すると次のような画面が表示されます。
文字が表示されているだけです、
内容が文字だけということも原因ですが、お世辞にもおしゃれとは言えないですね、
冒頭で少し言葉が出ていますが、Bootstrapは「フレームワーク」です。
フレームワークとは「骨組み」という意味です。。
そして骨組みを組むためには決まりがあるんです。
まずは、ページ上部にメニュバーを表示しましょう。
<body>の内容に少し追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<body> <nav class="navbar navbar-expand-md navbar-light bg-light"> <a class="navbar-brand" href="#">Code</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" href="#">ホーム</a> </li> <li class="nav-item"> <a class="nav-link" href="#">メニュー1</a> </li> <li class="nav-item"> <a class="nav-link" href="#">メニュー2</a> </li> </ul> </div> </nav> <h1>Hello, world!</h1> </body> |
こんな感じになります。
メニューバーが表示されます。
結構コードの量多いしその位は表示できるんじゃない?って思う方も
いるかもしれませんが注意して見て欲しいのは、HTMLしか書いてないという
ところなんです。
HTMLに詳しくない方はピンとこないかもしれないんですが、ページのデザインは
HTMLとは別で、普通はCSSという別のコードを書かないといけないのです。
しかし、BootstrapではCSSを書かずに、このようなメニューが作成できるんです。
それだけじゃないんです。
ウィンドウを縮めて見ましょう。メニューが3本線のメニューになりました!
(ハンバーガーメニューって呼ぶんですよ!)こうなります。
携帯で見ても閲覧しやすい表示に自動的に切り替わる、いわゆり
レスポンシブ対応となります。
なぜ簡単なコードでしかもCSSを書かずにこんなことが実現できるかというと、
あらかじめBootstrapで様々なスタイルが設定されているのです。
そのため、HTMLからclassやidというスタイルの名前を指定するだけでBootstrapの
機能を呼び出すことが可能になります。
先ほど追加したメニューバーの親要素は次のようなコードになっています。
1 |
<nav class="navbar navbar-expand-md navbar-light bg-light"> |
<>の中で囲まれた中にある「class」という属性にBootstrapの使用したい機能の名前を入れていくのです。
上のnavbarというHTMLには,
navbar
navbar-expand-md
navbar-light
bg-light
という4つのclassを割り当てています。そして
メニューの項目にはul.liのHTMLにnav-itemを割り当てることで
メニューバーの項目として表示されます。
1 2 3 4 5 6 7 8 9 10 11 |
<ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" href="#">ホーム</a> </li> <li class="nav-item"> <a class="nav-link" href="#">メニュー1</a> </li> <li class="nav-item"> <a class="nav-link" href="#">メニュー2</a> </li> </ul> |
このように、基本的なHTMLの書き方とbootstrapのclassの使い方を理解すれば、
自分のイメージに近いレイアウトで素早くページを作成することができるようになります。それではここからはbootstrapでできることをいくつか紹介していきます。
Bootstrapのグリッドシステムを利用する
Bootstrapの特徴としてグリッドシステムがあります。
HTMLを書いていて、「横に画像を並べたいのに下にずれちゃう」とか「3段組したいけど
幅が思った通りにならない」といった経験があるかとおもいますが、
bootstrapは横幅を12等分したスペースを振り分けるように指定することで
希望通りのレイアウトを作成することが可能です。
例えば横幅を2つに等分したい場合は6,6に分けるといった感じです。
実際にコードとして書くとつぎのようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<div class="row text-center"> <div class="col-sm-6 bg-info"> 1 </div> <div class="col-sm-6 bg-primary"> 2 </div> </div> <div class="row text-center"> <div class="col-sm-3 bg-info"> 1 </div> <div class="col-sm-3 bg-warning"> 2 </div> <div class="col-sm-3 bg-primary"> 3 </div> <div class="col-sm-3 bg-success"> 4 </div> </div> |
結果は次のようになります。
もちろんレスポンシブ対応です。
Bootstrapのコンポーネントとは
グリットシステムはレイアウトをカスタマイズするものでしたが、
Bootstrapにはコンポーネントというサイトの作成に必要な部品も用意されています。
最初に表示したメニューバーもコンポーネントの1つです。
例えばブログっぽいカードを作成したい場合はつぎのようになります
1 2 3 4 5 6 7 8 9 10 |
<div class="container text-center mt-3 mb-3"> <div class="card" style="width: 18rem;"> <img class="card-img-top" src="img/card.png" alt=""> <div class="card-body"> <h5 class="card-title">題名</h5> <p class="card-text">ここに文を書いていくんですよ</p> <a href="#" class="btn btn-primary">もっとよんじゃう?</a> </div> </div> </div> |
企業のLPの上部によくあるジャンボトロンと呼ばれるパーツもHTMLだけで
作成することができます。
コードはこんな感じ。
1 2 3 4 5 6 7 8 9 |
<div style="background: url(img/b2.jpg) fixed;" class="jumbotron jumbotron-fluid strokeme"> <div class="container"> <h1 class="display-4">これがBootstrapの力</h1> <p class="lead">立ち上がれ、Bootstrap!</p> <button type="button" class="btn btn-primary btn-lg mt-5 strokeme">立ち上がる</button> <button type="button" class="btn btn-secondary btn-lg mt-5 strokeme">立ち上がらない</button> </div> </div> |
このように、レイアウト、コンポーネントを利用してあっという間にサイトを
作成することが可能です。簡単、便利で素晴らしいものですが、最初に紹介したページ
みたいなオシャレな感じはちょっと出せないです。
オシャレな感じなページを作るには、個性にあったフォントを利用したり、背景を変えたり
する必要があります。
そのためにBootstrapの不要なCSSの一部をクリアしたり、変更する場合もあります。
ですので、BootstrapだけでなくCSSの知識もやはり重要になってきます。
ベースはBootstrapでササッと作成し、細かい部分は自分自身でCSSやレイアウトができると
良い意味でBootstrapっぽさがなくなっていきます。
Bootstrapでレスポンシブ対応やグリッドシステムを秒で実現|まとめ
急に水を差すようなことを言い出しましたが、まずは作ってみることが一番です。
利用する方法もHTMLのコードを少し追加するだけなので、ぜひ触ってみてください。
Bootstrapを利用してページを作成していく中で「ここ変えたいな」とか「こうなればいいのに」
という不満が出てくるはずです。
その際にはBootstrapのフレームを飛び越えて自分自身で色々と試行錯誤してみてください。
きっとオシャレなサイトが出来上がると思います!