概要
「Tabs」公式ページjQuery UI Documentation / API / 1.8 / Tabs
「Tabs」についての「Demos & Documentation」
jQuery UI Demos & Documentation / Tabs
第3回「Accordion」との違いを…
例えば…サイドバーに設置すると「仮定」して考えてみましょう…
「Accordion」も「Tabs」も省スペースになりますが…
「Accordion」はデフォルトのままでは…
最も長いコンテンツに合わせて領域が生成されますので…
高さを自動化しないと「間抜け」な感じになります…なので…
第3回では自動化の設定をしました…方や…
「Tabs」は…コンテンツに合わせて高さを自動化…がデフォルトです…
クリック時の挙動を見てみましょう…
「Accordion」では…コンテンツが垂直方向に展開されます…
つまり…スクロールが発生する訳ですね…方や…
「Tabs」では…イメージ的には…コンテンツが水平方向で切り替わります…
スクロールバーを見ながら操作すれば解りやすいですが…
スクロールは発生しませんので…
その場で…コンテンツを切り替えて見比べる事ができる訳ですね…
言い方を変えると…より純粋にナビゲーション寄り…って事です…
その辺りを勘案して…使い所を工夫してくださいな…
横並びのタブナビゲーションとして見ると…
私的に…違和感を感じたのは以下の点です…
皆さんも…上記リンクから…
公式のサンプルを弄ってみて下さい…
- 「id」でのマークアップでは同一ページに複数設置できない…
- タブ部分にヘッダー要素が割り当てられるので空きスペースが間抜け…
- タブ部分とパネル部分をラップするように枠線と背景が設定されている…
- 1番目のコンテンツがアクティブで読み込まれる…
①について
「class」でのマークアップのほうが…
使い勝手が良いので変えましょう(.tabs)…
②について
タブ部分には…「ui-widget-header」というクラス名が割り当てられています…
上でも書きましたが…
ヘッダーに置くタブナビゲーションとして意識しているのでしょうが…
ならば…第2回の「buttonset」を使えば良い話で…
何より…いわゆる「タブ」だと解りづらい…
なので…「ui-widget-header」を削除します…
(下記「Tabs のカスタムコード」の3行目が該当箇所です…)
③について
タブ部分の「ui-widget-header」を削除する関係で…
タブ部分の枠線と背景は消して…
コンテンツ部分の枠線と背景は残したい訳です…
しかしながら…デフォルトの背景を使うと…
例えば…「Tabs」の中に「Accordion」を配置する…などという…
設置シチュエーションによっては…
背景が被って邪魔臭い事にもなりますので…
色々と考えた結果…
一旦…枠線と背景を消して…
(下記「Tabs のカスタムコード」の2行目が該当箇所です…)
コンテンツ部分に…枠線と背景を再設定し…
角丸にするとコンテンツ部分の領域が少しだけ足りなくなるので…
左枠線に「5px」のネガティブマージンを使い…
デフォルトの下だけ角丸になるクラス名を削除して…
四隅が角丸になるクラス名を付与しています…
(下記「Tabs のカスタムコード」の4行目が該当箇所です…)
シームレスの背景画像は自作するか…
第1回を参照して…お好きなテーマをダウンロードすると…
ループ用の画像が同梱されていますので…
お好きな場所にホストして使って下さい…
Blogger用の外部ファイル保存場所として「GitHub」の「GitHub Pages」を活用しよう
Blogger用のファイル保存場所としてのクラウド型オンライン ストレージ「Google Drive」
Blogger用のファイル保存場所としてのクラウド型オンライン ストレージ「Dropbox」
Google Blogger用のファイル保存場所としてのGoogle sites/Picasa
タブ切り替え時…少々物足りないので…
エフェクトに…フェードアウト / フェードインを…
0.5 秒かけて実行するように指定…
(下記「Tabs のカスタムコード」の1行目が該当箇所です…)
④について
「Accordion」では…新たにクラス名を設定しましたが…
ここでは…デフォルトのクラス名で対応します…
「ui-tabs-selected」というクラス名を…
読み込み時にアクティブにしたい「li」要素に記述すれば OK です…
「jQuery UI 1.9」から仕様変更がありました
「jQuery UI 1.9」から読み込み時にアクティブにするクラス名は…
「ui-tabs-selected」から「ui-tabs-active」に仕様変更されました…
これに伴い…以下のカスタムコードとスタイルシートは…
「ui-tabs-selected」を「ui-tabs-active」に変更しました…
読み込むバージョンによって適宜変更して下さい…
「Tabs」のカスタムコード
では…カスタムコードです…
導入に際しては過去記事もお読み下さいな…
「Tabs」用カスタムコード
続いて…CSS です…ご自由に弄って下さい…
「Tabs」用 CSS
「Tabs」用カスタムコードと CSS を導入して…
公式サイトの…テーマ「dark-hive」のコードを表示させてみましょう…
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.
Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.
上記…公式タブのマークアップです…
上記公式タブのコード
公式サイトと比較してみて下さい…
jQuery UI テーマ「dark-hive」のページ
リンクをボタン化した場合と…
タブの中にアコーディオンを入れ込んだ場合を加え…
3番目の説明用コンテンツをアクティブで表示するサンプルです…
第2回「Button」リンクとフォームをボタン化…で設定した…
クラス名「buttons」を「div」タグに指定していますので…
クラス名「buttons」のテキスト設定が反映されます…
リンクタグを記述するとボタン化されます…
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第1回「導入」
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第2回
「Button」リンクとフォームをボタン化
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第3回
「Accordion」コンテンツをクリックで垂直に開閉
クラス名「buttons」を「div」タグに指定していますので…
クラス名「buttons」のテキスト設定が反映されます…
リンクタグを記述するとボタン化されます…
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第1回「導入」
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第2回
「Button」リンクとフォームをボタン化
「jQuery」と「jQuery UI」で HTML に彩りを添えよう…第3回
「Accordion」コンテンツをクリックで垂直に開閉
「h6」にクラス名「current」を指定
クラス名「current」を「h6」に指定していますので…
読み込み時にこのコンテンツが開いた状態で表示されます…
開いた状態で表示 させたいコンテンツの「h6」に…
適宜クラス名「current」を指定して下さい…
どの「h6」にもクラス名「current」を指定しない場合は…
全てのコンテンツが閉じた状態で表示されます…
スタイル属性は指定していませんので…
「Accordion」のデフォルトのテキスト設定が反映されます…
「Enter」で改行して記述していますが…
ご自身のサイトの改行設定によって…
適宜…改行タグ「<br />」を使用して下さい…
読み込み時にこのコンテンツが開いた状態で表示されます…
開いた状態で表示 させたいコンテンツの「h6」に…
適宜クラス名「current」を指定して下さい…
どの「h6」にもクラス名「current」を指定しない場合は…
全てのコンテンツが閉じた状態で表示されます…
スタイル属性は指定していませんので…
「Accordion」のデフォルトのテキスト設定が反映されます…
「Enter」で改行して記述していますが…
ご自身のサイトの改行設定によって…
適宜…改行タグ「<br />」を使用して下さい…
クラス名「ui-tabs-active」を「li」に指定していますので…
読み込み時にこのコンテンツが開いた状態で表示されます…
開いた状態で表示 させたいコンテンツの「li」に…
適宜クラス名「ui-tabs-active」を指定して下さい…
どの「li」にもクラス名「ui-tabs-active」を指定しない場合は…
1番目のタブがアクティブで表示されます…
スタイル属性は指定していませんので…
上記「Tabs」用 CSS のテキスト設定が反映されます…
コンテンツ毎にスタイル属性を指定したい場合は…
「div」タグに「style="ここに CSS を記述"」ってな感じで記述して下さい…
「Enter」で改行して記述していますが…
ご自身のサイトの改行設定によって…
適宜…改行タグ「<br />」を使用して下さい…
フラグメント識別子「#...」でのリンクで…
コンテンツを切り替える仕様ですので…
同一ページ内では…全て固有の「id」で対応させる必要があります…
例えばこの記事内では…3箇所の「Tabs」で…
それぞれ3個のコンテンツを切り替えていますから…
「tabs-1」~(中略)~「tabs-9」と…
9個のフラグメント識別子を使用しています…
読み込み時にこのコンテンツが開いた状態で表示されます…
開いた状態で表示 させたいコンテンツの「li」に…
適宜クラス名「ui-tabs-active」を指定して下さい…
どの「li」にもクラス名「ui-tabs-active」を指定しない場合は…
1番目のタブがアクティブで表示されます…
スタイル属性は指定していませんので…
上記「Tabs」用 CSS のテキスト設定が反映されます…
コンテンツ毎にスタイル属性を指定したい場合は…
「div」タグに「style="ここに CSS を記述"」ってな感じで記述して下さい…
「Enter」で改行して記述していますが…
ご自身のサイトの改行設定によって…
適宜…改行タグ「<br />」を使用して下さい…
フラグメント識別子「#...」でのリンクで…
コンテンツを切り替える仕様ですので…
同一ページ内では…全て固有の「id」で対応させる必要があります…
例えばこの記事内では…3箇所の「Tabs」で…
それぞれ3個のコンテンツを切り替えていますから…
「tabs-1」~(中略)~「tabs-9」と…
9個のフラグメント識別子を使用しています…
上記タブのマークアップです…
上記タブのコード
更には…これが本丸で…
この為にデフォルトの設定を改変してきた訳ですが…
CSS を追加すると…
タブ部分を自作画像でも表現できます…こんな感じ…
画像は「CSS Sprites」で表示しています…
Tonttu/テンプレート編集に必須な「CSS Sprites」作成ツールの使い方と「HTML」マークアップ
Google Bloggerで絵文字を使うためのTips【CSS Sprites 編】
勿論「img」タグでも可能ですが…私的には非推奨ですので…解説は無しです…
上記…自作画像を使用したタブのマークアップです…
新たに「img」というクラス名を設定して…
CSS を対応させています…黄文字のクラス名は…
ご自身のサイト設定に変更して下さい…
自作画像を使用したタブのコード
続いて…CSS です…1行目と6行目は不要です…
黄文字のクラス名とポジションは…
ご自身のサイト設定に変更して下さい…
「タブ部分の設定をリセット」の部分は…
必ず…「jQuery UI」の CSS よりも後に読み込まれる場所に記述して下さい…
「Tabs」用 CSS
尚…コンテンツ部分を全て折りたたむ事もできますが…
私的には不要なので実装していませんので…
必要な方は…上記「Tabs のカスタムコード」の1行目に…
「collapsible:true」を追記して下さい…
以上です…お疲れ様でした…
0 Comments :
View Comments :: Click!!
0 Comments :
Post a Comment :: Click!!
コメントを投稿