先日、Bloggerテーマの「ZELO」を導入しました。
今回は、
Bloggerテーマ「ZELO」のモバイル表示のメニューをカスタマイズした方法を紹介します。
Bloggerのメニュー(モバイル表示)
メニュー画面(デフォルト)
1. メニューをタップします。
2. メニューが表示されます。メニュー外の半透明の黒カバーをタップします。
3. メニューが閉じます。
CSSの解説(デフォルト)
Bloggerテーマ「ZELO」のCSSは、デフォルトで以下のコードになっています。ここでは、
このCSSについて解説します。
/* ---------- スマホメニューの設定 */
.nav-unshown {
display: none;
}
#nav-open span {
color: $(menu.font.color);
position: relative;
font-size: 16px;
background-color: $(menu.bg.color);
cursor: pointer;
padding: 4px;
border-radius: 4px;
font-weight: 500;
}
#nav-close {
display: none;
position: fixed;
z-index: 99;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: black;
opacity: 0;
transition: .3s ease-in-out;
}
/* ---------- MENU中身 */
.fix-nav {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow: auto;
position: fixed;
top: 0;
left: 0;
z-index: 9999;
width: 100%;
height: 50%;
background: #fff;
transition: .3s ease-in-out;
-webkit-transform: translateY(-105%);
transform: translateY(-105%);
-webkit-overflow-scrolling: touch;
}
#nav-input:checked ~ #nav-close {
display: block;
opacity: 0.6;
}
#nav-input:checked ~ .fix-nav {
-webkit-transform: translateY(0%);
transform: translateY(0%);
box-shadow: 6px 0 25px rgba(0,0,0,.15);
}
・「.nav-unshown」
ここでは、
チェックボックスの表示設定をします。
display: none
要素の表示形式を指定する。
*none : 非表示
上記の設定では、チェックボックスを非表示に指定しています。
「MENU」ボタンは、ボタンのようにみえますが、実際は、ボタンではなく、チェックボックスです。
チェックボックスは非表示になっていますが、画面の左上の「MENU」ボタンをタップすると、チェックボックスにチェックが入り、メニューが表示されるようになっています。
チェックボックスにチェックが入ったかどうかにより、CSSを切り替えて、メニューの表示/非表示を制御しています。
・「#nav-open span」
ここでは、
「MENU」ボタンの設定をします。
color: $(menu.font.color)
文字色を指定します。
*$(menu.font.color) : #000000
position: relative
要素の配置方法を指定します。
*relative : 相対位置への配置
font-size: 16px
文字サイズを指定します。
background-color
背景色を指定します。
*$(menu.bg.color) : #ffffff
cursor: pointer
クリックイベントを発生させるようにする設定と思われます。
padding: 4px
パディング幅を指定します。
border-radius: 4px
要素の4つの角に丸みを指定をします。
font-weight: 500
フォント(文字の太さ)を指定します。
・「#nav-close」
ここでは、
黒カバーの設定をします。
また、メニューを表示しない時は、黒カバーが非表示になるように設定します。
display: noneまた、メニューを表示しない時は、黒カバーが非表示になるように設定します。
要素の表示形式を指定します。
*none : 非表示
position: fixed
要素の配置方法を指定します。
*fixed : 相対位置への配置(固定)
z-index: 99
要素の重なりの順序を指定します。
*メニューの下に黒カバーを表示
top: 0
要素の上からの配置位置を指定します。
left: 0
要素の左からの配置位置を指定します。
要素の幅を指定します。
height: 100%
要素の高さを指定します。
background: black
背景色を指定します。
opacity: 0
要素の透明度を指定します。
transition: .3s ease-in-out
トランジション(時間的変化)を指定します。
・「.fix-nav」
-webkit-box-sizing: border-box
-moz-box-sizing: border-box
box-sizing: border-box
ボックスサイズの算出方法を指定します。
*画像の赤枠の幅と高さについての設定です。
*border-box : パディングとボーダーを幅と高さに含める
*-webkit、-moz : ベンダープレフィックス
overflow: auto
要素のボックスからはみ出た部分の表示方法を指定します。
*auto : ユーザーエージェントに依存
position: fixed
要素の配置方法を指定します。
*fixed : 相対位置への配置(固定)
top: 0
要素の上からの配置位置を指定します。
left: 0
要素の左からの配置位置を指定します。
z-index: 9999
要素の重なりの順序を指定します。
*黒カバーの上にメニューを表示
width: 100%
要素の幅を指定します。
height: 50%
要素の高さを指定します。
background: #fff
背景色を指定します。
transition: .3s ease-in-out
トランジション(時間的変化)を指定します。
-webkit-transform: translateY(-105%)
transform: translateY(-105%)
要素の表示位置を指定します。
*メニューを上に隠して非表示
*-webkit : ベンダープレフィックス
*translateY : Y方向の距離での移動を指定
-webkit-overflow-scrolling: touch
-moz-box-sizing: border-box
box-sizing: border-box
ボックスサイズの算出方法を指定します。
*画像の赤枠の幅と高さについての設定です。
*border-box : パディングとボーダーを幅と高さに含める
*-webkit、-moz : ベンダープレフィックス
overflow: auto
要素のボックスからはみ出た部分の表示方法を指定します。
*auto : ユーザーエージェントに依存
position: fixed
要素の配置方法を指定します。
*fixed : 相対位置への配置(固定)
top: 0
要素の上からの配置位置を指定します。
left: 0
要素の左からの配置位置を指定します。
z-index: 9999
要素の重なりの順序を指定します。
*黒カバーの上にメニューを表示
width: 100%
要素の幅を指定します。
height: 50%
要素の高さを指定します。
background: #fff
背景色を指定します。
transition: .3s ease-in-out
トランジション(時間的変化)を指定します。
-webkit-transform: translateY(-105%)
transform: translateY(-105%)
要素の表示位置を指定します。
*メニューを上に隠して非表示
*-webkit : ベンダープレフィックス
*translateY : Y方向の距離での移動を指定
-webkit-overflow-scrolling: touch
慣性スクロールの無効/有効を指定します。
*touch : 有効
・「#nav-input:checked ~ #nav-close」
「MENU」ボタンをタップした時、黒カバーを半透明にして、表示するように設定しています。
display: block
要素の表示形式を指定します。
*block : blockの要素
opacity: 0.6
要素の透明度を指定します。
要素の表示形式を指定します。
*block : blockの要素
opacity: 0.6
要素の透明度を指定します。
・「#nav-input:checked ~ .fix-nav」
ここでは、
「MENU」ボタンをタップした時、隠していたメニューを表示するように設定しています。表示するメニューには影をつけます。
-webkit-transform: translateY(0%)
transform: translateY(0%)
要素の表示位置を指定します。
*上に隠していたメニューを表示
*-webkit : ベンダープレフィックス
*translateY : Y方向の距離での移動を指定
*上に隠していたメニューを表示
*-webkit : ベンダープレフィックス
*translateY : Y方向の距離での移動を指定
box-shadow: 6px 0 25px rgba(0,0,0,.15)
要素に影をつけるように指定します。
メニュー画面(変更後)
メニューをカスタマイズすると、Bloggerテーマ「ZELO」のメニューは、以下のように表示されます。
今回は、カスタマイズして、
メニューが上からではなく、左からスライド表示されるようにします。
メニューの変更
今回のカスタマイズでは、
メニューのスライド表示の方法とメニューの幅と高さを変更します。
メニューのスライド表示の方法とメニューの幅と高さを変更します。
まず、Blogger管理画面の左側のメニューで「テーマ」を選択して、「HTMLの編集」ボタンを押して、「.fix-nav 」と「#nav-input:checked ~ .fix-nav」の2つを変更します。
「.fix-nav 」は、以下の4箇所を変更します。
・width(100%→60%に変更)
・height(50%→100%に変更)
・-webkit-transform(Y→Xに変更)
・transform(Y→Xに変更)
「#nav-input:checked ~ .fix-nav」は、以下の2箇所を変更します。
・-webkit-transform(Y→Xに変更)
・transform(Y→Xに変更)
【変更後】
.fix-nav {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow: auto;
position: fixed;
top: 0;
left: 0;
z-index: 9999;
width: 60%;
height: 100%;
background: #fff;
transition: .3s ease-in-out;
-webkit-transform: translateX(-105%);
transform: translateX(-105%);
-webkit-overflow-scrolling: touch;
}
#nav-input:checked ~ .fix-nav {
-webkit-transform: translateX(0%);
transform: translateX(0%);
box-shadow: 6px 0 25px rgba(0,0,0,.15);
}
スポンサーリンク
0 件のコメント :
コメントを投稿