LoginSignup
0
0

More than 3 years have passed since last update.

Bootstrap3/Simple Sidebarで左側のサイドバーを表示させてみた

Last updated at Posted at 2019-06-04

※この記事自体ははてなブログの過去記事(2015年)から移転しました。内容古めなのでご注意ください。

記事の対象者

  • Webデザイン初心者~中級者
  • そこそこHTML/CSS/JSの話が分かる。
  • CSS/JSのライブラリを使ったことがある。

目的

  • モバイルファーストかつレスポンシブで業務アプリを作成する ⇒ Bootstrap
  • デザインをなるべく管理しやすくしたい ⇒ LESS
  • サイドバーつけたい ⇒  Simple Sidebar

手段

メインをHTML5/CSS3で構成

ユーザーの環境としてはスマートフォンがメインになるので、古いIEとか無視出来る。基本的にはIE9以下は無視して良さそう。
ただ、将来的にIE8対応は出てくるかもしれない。少し不安に思いつつ、html5shiv.jsとRespond.jsで最低限逃げて終わらせる。((これらを使うか否かの論争はありそうだけど、まずはBootstrapの基本に則って入れる。運用に入る前にちゃんと検討すること))

Bootstrap3/Simple Sidebarプラグインでお手軽開発

Bootstrapは簡単にレスポンシブデザインを実現するためのCSS/JSライブラリ。という訳で、みんな大好きBootstrap3を今回採用。
Simple Sidebarはサイドバー出すためのBootstrapプラグインです。

LESSの活用

LESSはCSSに変数の概念をはじめ、プログラムっぽくすることで、管理し辛いCSSを管理しやすくする言語です。
最終的にcompileした上で配置しないといけないのでちょっと面倒なのですが、開発をする上では管理しやすくなり、便利そう。思い切ってライブラリ以外は全てLESSで書いていきます。後述しますが、Simple SidebarもLESS化して活用する所存。
開発環境ではless.jsを使ってブラウザ上でコンパイルします。

構成

  • 基本構成
    • HTML5
    • CSS3
    • Javascript
    • LESS
  • ライブラリ
    • less.js v2.5.1
    • Bootstrap  v3.3.5
    • JQuery  1.11.3
    • Simple Sidebar 1.0.4
    • html5shiv.js
    • respond.js
  • 開発環境
    • Windows8.1
    • Xampp5.6.11

開発環境を整える

手元にあるXamppを使うことにする。httpdocに下記のファイル群を入れていく。

ファイル構成

hogehoge (ここがroot)
│  └ index.html
│
├─ css
│  └ bootstrap.min.css
│
├─ dev (lessなど本番に配置しないものは全部devに入れる)
│  ├─ js
│  │  └less.min.js
│  │
│  └─ less
│      └─bootstrap (他のライブラリのためにフォルダは分けておく)
│         ├─bootstrap.less
│         ├─simple-sidebar.less (拡張子をlessにしておく:後述)
│         └─mixins
├─ img
└─ js
    ├ bootstrap.min.js
    ├ html5shiv.min.js
    ├ jquery-1.11.3.min.js
    └ respond.min.js

 

Simple SidebarのLESS化

Simple Sidebarの設定も開発するうえで色々変えていく必要があるし、どうせならLESSで管理したい。さらに、Bootstrapの変数を継承させたい。なのでLESS化した上でBootstrapに読み込ませる。
ダウンロードしてきたsimple-sidebar.cssをリネームしてsimple-sidebar.lessに変え、bootstrap.lessの最下部に下記を追記し、呼び出しておく。

// 外部ライブラリ
@import "simple-sidebar.less";

 
本当は中身もBootstrapの変数に対応させていきたいのだけど、まずは置くだけ。必要に応じて変数を導入していく。

Simple Sidebarを表示させる

まずは公式のサンプルをちょろっといじって、各種ファイルを読み込ませる。

<!DOCTYPE html> <!-- HTML5の宣言 -->
<html lang="ja">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- IEは互換性モード使わず最新版を使うように設定 -->
  <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- viewportをデバイス依存にし、レスポンシブ出来るようにする -->

  <title>test</title>
  <link href="css/bootstrap.min.css" rel="stylesheet"> <!--bootstrap.cssを呼び出す。bootstrap.jsは遅延読み込みさせるために</body>直前に記載する -->

</head>
<body>

<div id="wrapper">

    <!-- Sidebar -->
    <div id="sidebar-wrapper">
        <ul class="sidebar-nav">
            <li class="sidebar-brand">
                <a href="#">
                    Sidebarを使ってみたデモ
                </a>
            </li>
            <li>
                <a href="#">メニュー1</a>
            </li>
            <li>
                <a href="#">メニュー2</a>
            </li>
            <li>
                <a href="#">メニュー3</a>
            </li>
        </ul>
    </div>

    <div id="page-content-wrapper">
        <div class="container-fluid">
            <div class="row">
                <div class="col-lg-12">
                    <h1>Simple SidebarをLESSで使ってみました</h1>
                    <p>ドヤァ</p>
                    <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">サイドバー表示を切り替える</a>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Javascriptは可能な限り遅延読み込みさせて、Javascriptを読み込む前にページが表示されるようにする -->
<script src="js/jquery-1.11.3.min.js"></script> <!-- bootstrapはJQuery依存 -->
<script src="js/bootstrap.min.js"></script>

<!-- ここから以下はIE9以下のバージョン用の設定。HTML5を認識させるために必要 -->
<!--[if lt IE 9]>
  <script src="js/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="js/respond/1.4.2/respond.min.js"></script>
<![endif]-->

<!-- サイドバー表示を切り替えるのに使用。必ずJQueryの後に記載すること -->
<script>
$("#menu-toggle").click(function(e) {
    e.preventDefault();
    $("#wrapper").toggleClass("toggled");
});
</script>

<!-- 開発環境のみLESSファイルをコンパイルする -->
<link href="dev/less/bootstrap/bootstrap.less" rel="stylesheet/less">
<script src="dev/js/less.min.js"></script>

</body>
</html>

動作テスト

うん、いい感じ。こういうテストページをいつかWeb上にもUPしたい。今度やろう。

細かい話。

  • モバイルは通信環境悪いので、なるべく読み込むファイルは小さくしたい。
    • Javascriptは可能な限り遅延読み込みする。
    • 読み込むCSSとJSはちゃんとMinified版を使う。
    • LESSは本番に展開する前にコンパイルする。
  • 外部からライブラリを読み込んで提供元に依存した作りにしない。

色々な入手元

[http://lesscss.org:embed:cite]
[http://getbootstrap.com:embed:cite]
[https://jquery.com:embed:cite]
[http://startbootstrap.com/template-overviews/simple-sidebar/:embed:cite]
[https://github.com/aFarkas/html5shiv:embed:cite]
[https://github.com/scottjehl/Respond:embed:cite]

 

 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0