Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › グローバルメニューのテキスト位置
- このトピックには12件の返信、2人の参加者があり、最後ににより1年、 10ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年7月6日 3:25 AM #43332Sっちゲスト
グローバルメニューのテキスト位置について教えていただきたく、書き込みさせていただきます。
自力でやってはみたのですが、どうしてもテキストが上にいってしまいます。
現在はテキストを大きくしてごまかしているのですが、上下左右で中央にしたいです。
お力を貸してください。
styleのcss内は#navi ul { height: 80px; /*わかりやすいように大きめにしてます*/ position: relative; text-align: center; clear: both; height: 80px; margin-bottom: 0; border: 0px solid #ddd; background-color:#F7F7F7; border-radius:3px; margin:0; padding:0; box-sizing: border-box; } #navi ul > li { height: 100%; display: inline-block; } #navi ul li a { height: 100%; box-sizing: border-box; /*はみ出し防止*/ } #navi { width:100%; position: top; z-index: 10; } #site-title { margin-top: 50px; } #navi ul li a{ height: 100%; font-size: 30px; padding: .3em .7em; color:#111; text-decoration:none; z-index:99; } #navi ul li a:hover{ background-color:#ddd; }
となっております。
良ければ教えてください。お願いします。 -
2016年7月6日 5:54 AM #43333kazusanゲスト
初歩的なことかもしれませんが色々調べましたがわかりませんでした。教えてください。
現在サイトTOPを固定ページにしています。
サイトTOPの固定ページには目次は付かないのでしょうか。<h2>や<h3>などを7個ほど使っており目次になる要素はあります。
もしよろしければご教授お願い致します。 -
2016年7月6日 7:47 PM #43357
-
2016年7月6日 7:50 PM #43358わいひらキーマスター
#43333
既に、新しいトピックが立てられて自己解決されたようですね
サイトTOPの固定ページに目次設定。 -
2016年7月7日 12:16 AM #43384Sっちゲスト
わいひろ様(#43357)
返信が遅くなってしまいすみません。
今日明日は、このぐらいの時間にしか返信できないと思います。
URLですが下記のものです。よろしくお願いします。
http://www.simamu.pw/ -
2016年7月7日 7:52 PM #43402わいひらキーマスター
サイトを見てみたのですが、説明の内容だけでは、どのようにしたいのかがちょっとわからなかったです。
できれば以下の画像に完成映像がわかるような注釈をつけてアップしていただけると助かります。
アップローダーは以下に案内があります。
https://wp-simplicity.com/suport/topic/first-time/注釈ソフトは、もう既に何か使っておられるかもしれませんが、一応Screenpressoを紹介しておきます。
-
2016年7月8日 12:12 AM #43417Sっちゲスト
わいひろ様 #43402
http://chetfaker.com/
ここのサイトと近いものを作ろうと思っているので、グローバルメニューは上記のサイトと同じ風にできたらと考えています。 -
2016年7月8日 1:03 AM #43421Hidekichiゲスト
サブメニューがない場合は、
サンプル: メニューulのliの縦中央寄せ | codepen
こんな感じに簡単にできますが、サブメニューが出るタイプにすると格段に難しくなります。
サンプルはscssで書いてあるので、css欄の下向き三角からview compiled cssでcssに直したものを子テーマstyle.cssに貼り付け、js欄を丸ごと子テーマjavascript.jsにコピペするとリストの間の「/」が入ります。jQueryでセパレーターを入れずとも、ナビの出力時にセパレータを入れるような設定があったようにも思うのでここらは別として、ひとまずcssでは縦中央にするために色々と方法があります。
今回はflexを使用した例ですが、line-heightでも可能かと思います。flexの方が勝手に改行したり、今回はjustify-contentにてflex-startで、いわゆる通常の横並びを実現していますが、ここをspace-between等に変更することで均等横並びなどもできるようになります。その際はセパレーターがややこしいことになるのであまりオススメしませんが、できなくもないと思います。
#navi ulにfont-size: 24pxを入れていますが、ここを変更することでどんなフォントサイズでも縦中央寄せになります。またメニューの高さは#navi ulのheightです。
align-itemsでcenterにしているので、liに対してheightはいりません。align-itemsはulの縦中央にliを持っていきます。くれぐれもサプメニューがない場合のやり方です。
-
2016年7月8日 5:30 PM #43436Sっちゲスト
Hidekichi様 #43421
詳しい説明等ありがとうございます。
Hidekichi様が記載していただいた通りコピペしてみたのですが、中央寄せはうまくいって文句なしです。
ですが、リストの間の「/」が入らないのですが、何故でしょう。
以下がjs内の物です。
他に何か見たい部分などあれば教えてください。//ここに追加したいJavaScript、jQueryを記入してください。 //このJavaScriptファイルは、親テーマのJavaScriptファイルのあとに呼び出されます。 //JavaScriptやjQueryで親テーマのjavascript.jsに加えて関数を記入したい時に使用します。 (function($){ $(function(){ var liLength = $("#navi").find("li").length; $("#navi").find("li").each(function(i){ if (i < liLength - 1) { $(this).after("/"); } }); }); })(jQuery);
-
2016年7月8日 10:31 PM #43450Hidekichiゲスト
> リストの間の「/」が入らないのですが、何故でしょう。
今の状態でですか?
サイトを見ると、メニューアイテムが1つしかないので入らないのではないですかね?liLength はliの数です。これがメニューアイテムの数です。
if (i < liLength - 1) {
でアイテムの数だけ繰り返す中(each部分)で、liLength – 1がアイテムの数より大きい時にアイテムの後にセパレータを入れてます。アイテムが1つしかない場合は、i < 1 – 1となり、i < 0でiは0ですから、0<0となり、この判定は偽(false)となって、セパレーターを入れる処理が入りません。もし2つあった場合は、
※i(index)は0から始まります。つまりli[0]、li[1]…と言う感じです。
1つ目のアイテム i < 2 – 1 は i < 1、 0 < 1 → true
2つ目のアイテム i < 2 – 1 は i < 1、 1 < 1 → falseここから、1つ目のアイテムの後にはセパレーターが入りますが、2つ目のアイテムは1<1と言う条件になりfalseとなりますので、入りません。
3つある場合はどうなるか、1つ目のアイテム i < 3 – 1 は i < 2、 0 < 2 → true
2つ目のアイテム i < 3 – 1 は i < 2、 1 < 2 → true
3つ目のアイテム i < 3 – 1 は i < 2、 2 < 2 → falseと言う具合に、最後のアイテムは必ずfalseが返ってくるのでセパレーターが入りません。
-
2016年7月8日 10:50 PM #43451Sっちゲスト
Hidekichi様
完全にこちらのミスでした。すみません。
追加したところ無事に確認することができました。
もう一つ質問があるのを忘れていたのですが、
メニューをクリックした際に、スクロールでその記事まで飛ぶ方法を聞くの忘れていたのですが、
この件については新しいトピックを立てたほうがよろしいでしょうか? -
2016年7月8日 10:50 PM #43452Sっちゲスト
Hidekichi様
完全にこちらのミスでした。すみません。
追加したところ無事に確認することができました。
もう一つ質問があるのを忘れていたのですが、
メニューをクリックした際に、スクロールでその記事まで飛ぶ方法を聞くの忘れていたのですが、
この件については新しいトピックを立てたほうがよろしいでしょうか? -
2016年7月9日 1:25 AM #43457Hidekichiゲスト
新しくトピックを立ててもらう方が良いですが、その前に、「メニューをクリックした際に、スクロールでその記事まで飛ぶ方法」これはどういうものを前提とされているのかわかりませんが、グローバルメニューの場合は、そのページに遷移してしまいます。
スクロールでその記事まで移動させる場合は、その記事が同一ページにある必要があります。
同一ページに記事がある場合は、グローバルメニューでもスクロールでその記事の位置まで移動させることができます。ただ、これらは通常グローバルメニューでやらずに、TOC(目次メニュー)でやるのが普通です。
別にTOCである必要もないのですが、TOCと言うのは通常見出しをページ内から取得して、それぞれにリンクを貼ります。そのリンクが見出しとリンクしているので、スクロールしやすいわけです。必要なこととしては、スクロールのターゲットとなる見出しなり、位置をつけておくということが必要になります。
例えば、何かしらの商品紹介があるとして
<div class="itemTitle" data-name="item1">商品名</div>
こういう感じにdata属性でitemとその連番をつけておきます。これだけでターゲットとなります。idをつけても良いです。classで指定しても良いです。これらをどうするかでスクリプトの作り方が若干異なります。
見出しでやる場合は、wordpressにTOCのプラグインがあるので、それらを利用するのが手っ取り早いです。これらは、記事をどのような構成にするかでやり方が異なったり、どうすれば最適なのかが変わりますので、ひとまずはスクロールは後回しにして、先に記事自体をまず作成して、それに合わせたやり方を探すのが賢明です。
-
-
投稿者投稿
- フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。