モバイル用アコーディオンツリーメニューの色指定について

Simplicityの特徴 フォーラム Simplicityについての質問 モバイル用アコーディオンツリーメニューの色指定について

10件の返信スレッドを表示中
  • 投稿者
    投稿
    • #30684
      Suu
      ゲスト

      過去記事を探したのですが、探し方が悪かったようでしたら申し訳ないのですが、モバイル用アコーディオンツリーメニューの「MENU」の部分の黒色と、アコーデオンしたときのメニュー内容の濃いグレー色はどこかから違う色に指定できますでしょうか。
      テーマのカスタマイズのメニューボタン色かなと思ったのですが、やってみたら違うようなので、質問させていただきました。
      よろしくお願いいたします。

    • #30686
      Hidekichi
      ゲスト

      子テーマのmobile.cssあたりにぶっこんだらイケそうな気がします。style.cssあたりでも行けそうな気がしますが、それよりもmobile.cssのが良いようにも(優先度の問題で)。

      ハンバーガーアイコンの部分でしたら、 #h-top #mobile-menu a かな。「MENU」と言う書き方からするに、別な感じがするんですけれども(笑)
      メニューのリスト部分は #navi ul liかと思います。それぞれに、IDやクラスが設定してあるので、それで指定しても大丈夫かと。

      思いますとか、大丈夫かもと言う不確定な言い方なのは、公式のスマホ画面が現在キャッシュが効いていたりで、ウチで見れないのと、ウチのサイトはカスタマイズやらしていて同じセレクタを利用しているのか不明な所もあったりするためです。

      サイトアドレスを記入頂ければ、わいひらさんやら僕などが見に行って、その場で調べて、ここらですねと言うことができます。

    • #30688
      Suu
      ゲスト

      Hidekichiさん、こんにちは
      今、いじっているサイトは、http://divinus-jp.com です。
      パソコンの画面ですとメニュー部分は赤というか、えんじ色っぽいのですが、ウィンドウ幅を狭くしたりスマホで見ますとメニューは黒と灰色になってしまうので、同じような濃い赤色になればいいなぁ。
      といった次第です。
      こんなお返事で手がかりになりますでしょうか? 

    • #30689
      Hidekichi
      ゲスト

      今見ました所、css自体は親テーマ/css/slicknav.cssに書いてあるんですけれども、子テーマモバイルcssで上書きできるんじゃなかろうかと思います。

      ハンバーガーの部分は、

      .slicknav_menu .slicknav_icon-bar {
        color: 任意の色;
      }

      で変えられます。ハンバーガーの線それぞれがspanで作られているので、例えば、

      .slicknav_icon-bar:first-child {
        color: 何かしらの色A;
      }

      または、

      .slicknav_menu .slicknav_icon-bar {
        color: 例えば赤;
      }
      
      .slicknav_menu .slicknav_icon-bar:odd {
        color: 例えば黒;
      }

      こう設定すると、黒赤黒と言う並びに色を付けたりもできます。:oddは奇数、:evenは偶数です。
      まぁこれらはそれぞれのバーに色を付けるためですので、全部同じ色で良いなら.slicknav_menu .slicknav_icon-barに色設定すれば良いかと思います。

      MENUの部分は、.slicknav_menu .slicknav_menutxtに対してcolorで色を設定すれば良いかと思います。
      MENUとハンバーガーの部分を同じ色にするのであれば、

      .slicknav_menu .slicknav_menutxt,
      .slicknav_menu .slicknav_icon-bar{
        color: 任意の色;
      }

      とかでイケるんじゃなかろうかと思います。

      背景の部分は、.slicknav_btnに対してbackground-colorで設定します。が、MENUにはtext-shadowがかかっているので(黒ぼかし)、web開発環境(モダンブラウザでF12キー)などでカラーピッカー等を利用して最適な値を見つけてください。

    • #30690
      Hidekichi
      ゲスト

      あ、間違えた。

      ハンバーガーの部分はbackground-colorです。なので、

      .slicknav_menu .slicknav_menutxt,
      .slicknav_menu .slicknav_icon-bar{
        color: 任意の色;
      }

      これはできません。

      .slicknav_menu .slicknav_menutxt{
        color: 任意の色;
      }
      .slicknav_menu .slicknav_icon-bar{
        background-color: 任意の色;
      }

      こんな感じかと思います。

    • #30691
      Hidekichi
      ゲスト

      ややこしいことを書いたので、まとめ

      .slicknav_menu .slicknav_menutxt{
        color: 任意の色;
      }
      .slicknav_menu .slicknav_icon-bar{
        background-color: 任意の色;
      }
      
      .slicknav_btn{
        background-color: 任意の色;
      }

      これでイケると思うんですけど、他のcssのメディアクエリで上書きされるかも知れないので、その場合は、

      @media screen and (min-width: xxx) and (max-width: yyy){
        //ここに上のスタイルを入れる
      }

      こんな感じにして、最小画面幅と最大画面幅を設定すれば、その範囲内で、スタイルが適用されるようになります。

      @media screen and (min-width: 300px){
        //...処理...
      }

      とすれば、300px以上の画面幅が対象で、該当するスタイルが適用されるタグが存在する時のみ有効になります。逆に、(max-width: 1024px)などとすれば、1024px以下は適用範囲になります。

    • #30695
      Suu
      ゲスト

      Hidekichi さん、ありがとうございます。
      先ほどのURLのサイトでは、いきなりテストも出来ないので、私のサイト http://suu-net.com サイトにて
      Simplicity child: mobile.css に

      
      .slicknav_menu .slicknav_menutxt{
        color: #FFFFF;
      }
      .slicknav_menu .slicknav_icon-bar{
        background-color: #990000;
      }
       
      .slicknav_btn{
        background-color: #FF0099;
      }
      

      と、入れてみたのですが、変わりませんでした。わたしが書くところ間違えてますか?
      もしかして幅の設定(@media screen and (min-width: 300px)とかは必須でしょうか)
      シロート質問で申し訳ありません。

    • #30699
      Hidekichi
      ゲスト

      いや、もしかすると、うちの環境でslicknavってのを見たことがないので、案外曖昧だったんですけども、今、サイトのheadタグの中を見てみたら、slicknav.cssはほぼcssを読み込む最後辺りに読み込まれているため、子テーマでは上書きできないんだろうと思います。

      直接、親テーマcss/slicknav.cssを編集するか、jQueryで値を上書きすればよいかと思うんですが、もしcssをちょくで編集する場合は、何かしらが原因で元に戻す必要があるかも知れないので、修正するプロパティが重複している場合は、元のプロパティをコメントアウト、追記の場合は、まぁ何もしなくてもいいですかな。
      /*追記*/みたいに書いておいても良いですかね。

      例を上げると、

      .slicknav_menu .slicknav_menutxt{
        /* color: 元の色の値; */
        color: 任意の色;
      }

      こんな感じです。もし、親テーマのアップデーがあって更新した場合、バックアップをとっておかないと、どこをどう編集したのかわからなかったりすると思うので、手を加えたファイルはアップデートしても少ない手間で元に戻せるように、ローカルにバックアップ(コピー)を取るようにしておいてください。

      jQueryでやるなら、子テーマjavascript.jsに、

      (function($){
        $(function(){
      
          // mobile menu color change
          $('.slicknav_menu .slicknav_menutxt').css({
            color: "#fff"
          });
      
          $('.slicknav_menu .slicknav_icon-bar').css({
            "background-color": "#990000"
          });
      
          $('.slicknav_btn').css({
            "background-color": "#FF0099"
          });
      
        });
      })(jQuery);

      こんな感じですかね。この場合は、通常のcssで表示した後、jQueryが発動して書き換えるというような手順になるため、サイトが重い場合などは一瞬チラツキみたいのが発生する場合があります。
      生のjavascriptで書いた方が高速なんですけど、まぁ一瞬で変更されるので大丈夫かと。

      jQueryは子テーマjavascript.jsなのでアップデートに影響されません。
      一瞬のチラツキすらアレだと言う場合は、
      親テーマ/css/slicknav.cssを直で編集→ファイルを念の為バックアップ

      アップデートのたびに修正するのがアレだと言う場合は、
      子テーマjavascript.jsにコード追記。しかし一瞬チラツキが出るかも知れないと言うデメリットも。

      確認画像

      このように確実に変更できます。firefoxのコンソールからお試ししてみました。

      Attachments:
    • #30700
      Suu
      ゲスト

      Hidekichi さん、お世話になります。
      おかげさまで、モバイルメニューの色づけ出来ました。
      親テーマの slicknav.css にコメント入れて色変更し、バックアップをとりました。
      親テーマのアップデートをしたときには、そこだけは毎回、手動で変更が必要という事ですね。
      たいへん勉強になりました。
      いろいろと詳しい解説、ありがとうございました。

    • #30701
      Hidekichi
      ゲスト

      実は、割愛しましたが、jQueryで、headタグにstyleタグを書き出すという方法なら、親テーマの変更なしに色々できるんですけれども、まぁこれはまた別の機会に。

    • #30709
      アバター画像わいひら
      キーマスター

      凄い。なんという詳しいレス。
      hidekichiさんありがとうございます。

10件の返信スレッドを表示中
  • トピック「モバイル用アコーディオンツリーメニューの色指定について」には新しい返信をつけることはできません。
スポンサーリンク
アドセンス(大)
アドセンス(大)