サイドナビゲーションメニューを作る
2021-05-28
navigation
cms
おはようございます、CMSサービスもやっと使えるになってきたところで手を入れてこなかった管理画面を改修していきたいと思います。 横にナビゲーションメニューをいれてカテゴリーの作成や投稿の作成をできるようにしてみたいと思います。
現在のCMS管理画面
なんとも殺風景というか、機能を置いただけ・・
サイドメニューに何を置くか整理
サイドメニューに置きたい項目は下記
- ダッシュボード(トラフィックなどを表示)
- 投稿の管理
- コメントの管理
- 画像などのファイル管理
- チャンネルの管理
- カテゴリーの管理
- プロフィールの管理
よく使われるであろう順に置いてみました。
ナビゲーションメニューの構築
下記のページを参照して作ってみます。
Partially collapsing static Bootstrap sidebar
下記のコードを参照
<div class="wrapper"> <!-- Sidebar --> <nav id="sidebar"> <div class="sidebar-header"> <h3>Bootstrap Sidebar</h3> <strong>BS</strong> </div> <ul class="list-unstyled components"> <li class="active"> <a href="#homeSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"> <i class="fas fa-home"></i> Home </a> <ul class="collapse list-unstyled" id="homeSubmenu"> <li> <a href="#">Home 1</a> </li> <li> <a href="#">Home 2</a> </li> <li> <a href="#">Home 3</a> </li> </ul> </li> <li> <a href="#"> <i class="fas fa-briefcase"></i> About </a> <a href="#pageSubmenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle"> <i class="fas fa-copy"></i> Pages </a> <ul class="collapse list-unstyled" id="pageSubmenu"> <li> <a href="#">Page 1</a> </li> <li> <a href="#">Page 2</a> </li> <li> <a href="#">Page 3</a> </li> </ul> </li> </ul> </nav> <!-- Page Content --> <div id="content"> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <div class="container-fluid"> <button type="button" id="sidebarCollapse" class="btn btn-info"> <i class="fas fa-align-left"></i> <span>Toggle Sidebar</span> </button> </div> </nav> </div> </div>
CSS
次にCSSでデザインをあてこみます。
/* Shrinking the sidebar from 250px to 80px and center aligining its content*/ #sidebar.active { min-width: 80px; max-width: 80px; text-align: center; } /* Toggling the sidebar header content, hide the big heading [h3] and showing the small heading [strong] and vice versa*/ #sidebar .sidebar-header strong { display: none; } #sidebar.active .sidebar-header h3 { display: none; } #sidebar.active .sidebar-header strong { display: block; } #sidebar ul li a { text-align: left; } #sidebar.active ul li a { padding: 20px 10px; text-align: center; font-size: 0.85em; } #sidebar.active ul li a i { margin-right: 0; display: block; font-size: 1.8em; margin-bottom: 5px; } /* Same dropdown links padding*/ #sidebar.active ul ul a { padding: 10px !important; } /* Changing the arrow position to bottom center position, translateX(50%) works with right: 50% to accurately center the arrow */ #sidebar.active .dropdown-toggle::after { top: auto; bottom: 10px; right: 50%; -webkit-transform: translateX(50%); -ms-transform: translateX(50%); transform: translateX(50%); }
Responsive
768px 以下の場合のCSSをここで指定します。
@media (max-width: 768px) { /* 80px and its content aligned to centre. Pushing it off the screen with the negative left margin */ #sidebar.active { min-width: 80px; max-width: 80px; text-align: center; margin-left: -80px !important; } /* Reappearing the sidebar on toggle button click */ #sidebar { margin-left: 0; } /* Toggling the sidebar header content, hide the big heading [h3] and showing the small heading [strong] and vice versa */ #sidebar .sidebar-header strong { display: none; } #sidebar.active .sidebar-header h3 { display: none; } #sidebar.active .sidebar-header strong { display: block; } /* Downsize the navigation links font size */ #sidebar.active ul li a { padding: 20px 10px; font-size: 0.85em; } #sidebar.active ul li a i { margin-right: 0; display: block; font-size: 1.8em; margin-bottom: 5px; } /* Adjust the dropdown links padding*/ #sidebar.active ul ul a { padding: 10px !important; } /* Changing the arrow position to bottom center position, translateX(50%) works with right: 50% to accurately center the arrow */ .dropdown-toggle::after { top: auto; bottom: 10px; right: 50%; -webkit-transform: translateX(50%); -ms-transform: translateX(50%); transform: translateX(50%); } }
Javascript
トグルボタンを押したときのアクションをここで指定します。
$(document).ready(function () { $('#sidebarCollapse').on('click', function () { $('#sidebar').toggleClass('active'); }); });
実装画面
実装画面は下記です。
開いてるとき
閉めた時
あとは自身のメニューをはめ込んでおしまいです。
公開日: 2021-05-27