• 解決済 isseiaone

    (@isseiaone)


    先週フォーラム内でメニューボタンの表示を画像置換する方法を教えていただきました。
    教えていただいた通り出来たと思っていたのですが、、IE7で見るとhoverした際のみ画像が消えてなくなってしまいます。firefoxで見ると何も問題ありません。

    教えていただいた方法は、ページの個々のIDに対して画像置換のcssを利用する方法でした。
    下記が私が書いたcssなんですが。。。

    #menu-item-46 {
    background:url(../../images/global-menu01.jpg) no-repeat;
    display:block;
    float:left; height:50px;
    background-position:-600px 0px;
    text-indent:-9999px;
    }
    
    #menu-item-46 :hover{
    background:url(../../images/global-menu01.jpg) no-repeat;
    display:block;
    float:left; height:50px;
    background-position:-600px -50px;
    text-indent:-9999px;
    }

    IE7で見てもちゃんとhoverする方法をもう一度御教授いただけないでしょうか。
    よろしくお願いします。

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • #未検証

    とりあえず

    #menu-item-46 :hover

    #menu-item-46:hover

    に。

    トピック投稿者 isseiaone

    (@isseiaone)

    kzさん

    いつもサポートありがとうございます。
    上記の修正試みましたがだめでした。。。

    ああ。。。どうしよ。

    トピック投稿者 isseiaone

    (@isseiaone)

    Kzさん

    やはりKzさんに教わった、これを行くしかないですかね。

    <?php
    add_filter( 'the_title', 'my_nav_title', 10, 2 );
    // $title メニューのタイトル
    // $id メニューの ID
    // タイトルか id を元に img タグを生成しましょう。
    function my_nav_title( $title, $id ) {
      // the_title フィルタは他でも呼ばれまくるので
     // メニューの場合だけ画像にするように取り計らいます。
      switch ( $id ) { // ここでは id を元にメニューか否かを判断します。
        case 12:
        case 13:
        case 14:
          // 例)画像が「テーマフォルダ/images/nav-メニューID.jpg」な場合。
          return '<img src="'
            . get_bloginfo('stylesheet_directory')
            . '/images/nav-'
            . $id
            . '.jpg" />';
      }
      // メニューじゃない場合はタイトルそのまま。
      return $title;
    }
    ?>

    もう一度だけくわしく上記の説明お願いできないでしょうか。
    お力添えのほどよろしくお願いします。

    トピック投稿者 isseiaone

    (@isseiaone)

    Kzさん

    おはようございます。
    因みに現在の私のグローバルメニュー部のソース表示はこんな感じです。
    メニューは5つ。

    <div id="nav">
    	<div id="nav-content" class="clearfix">
    	<div class="menu-global-menue-container">
    	<ul id="menu-global-menue" class="sf-menu menu clearfix">
    
    <li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42"><a href="http://www.test.co.jp/?page_id=31">会社概要</a></li>
    <li id="menu-item-189" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="http://www.test.co.jp/?page_id=178">サービス概要</a></li>
    <li id="menu-item-175" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-175"><a href="http://www.test.co.jp/?page_id=165">これまでの実績</a></li>
    <li id="menu-item-174" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-174"><a href="http://www.test.co.jp/?page_id=168">アクセス</a></li>
    <li id="menu-item-173" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-173"><a href="http://www.test.co.jp/?page_id=171">お問合せ</a></li>
    </ul></div>

    それに対して画像置換の方法を利用してCSSに追記したのが下記です。
    昨日調べたらこれだとIEは全滅でした。何故かhoverの指定もしていないのに
    ポインターを画像にのせると画像が飛んでいってしまい、背景の白が出てきてしまうんです。

    #menu-item-42 {
    background-color: #ffffff;
    background-image:url(../../images/global-menu01.jpg);
    background-repeat:no-repeat;
    background-position: 0 0 ;
    display:block;
    float:left;
    height:50px;
    text-indent:-9999px;
    outline:none;
    
    }
    
    #menu-item-42:hover{
    background-color: #ffffff;
    background-image:url(../../images/global-menu01.jpg);
    background-repeat:no-repeat;
    background-position: 0 -50px ;
    display:inline block;
    float:left;
    height:50px;
    text-indent:-9999px;
    outline:none;
    
    }

    上記のようにhoverをしても、下記のようにhover時を指定しなくても、
    IEだとポインターを乗せると画像が飛んでいってしまうんです。
    これはテーマの問題なのかな。。。

    #menu-item-42 {
    background-color: #ffffff;
    background-image:url(../../images/global-menu01.jpg);
    background-repeat:no-repeat;
    background-position: 0 0 ;
    display:block;
    float:left;
    height:50px;
    text-indent:-9999px;
    outline:none;
    
    }

    まず、#menu-item-42ではなく#menu-item-42 aにcssを指定したほうがよいと思いますよ。
    cssをシンプルに書いてみましょう;)

    #menu-global-menue li a {
      background-color: #ffffff;
      background-position: 0 0 ;
      display:block;
      float:left;
      width:100px;
      height:50px;
    }
    
    #menu-global-menue li a {
      text-indent:-9999px;
      outline:none;
      background-repeat:no-repeat;
    }
    
    #menu-item-42 a {
      background-image:url(../../images/global-menu01.jpg);
    }
    
    #menu-global-menue li a:hover {
      background-position: 0 -50px ;
    }

    例えばこんな感じとか?(テキトーですよ)

    トピック投稿者 isseiaone

    (@isseiaone)

    shokun0803さん

    アドバイスありがとうございます。
    今、上記の記述をそのまま試してみたんですが、
    やはりIE7,8で同じ現象が起きてしまう。。。。んです。

    hoverの記述があってもなくても、ポインターをボタンにのせると
    画像が消えてなくなってしまいます。

    まったくわからない。。。。

    他の方法も考えたいんですが、この現象が気になってほっておけない気分です。

    なんでだ。。。。

    ■通常時は普通に画像が出る。
         ↓
    ■hover時は何故か画像が消えて何も出ない。
    (hoverの記述があるなしに関わらず)
    この現象はIEで起こり、FFだと指示通りになる。

    おおおおぉおおお。
    お力添えをーーーー。

    う~ん、サイトを見せてもらうのが一番なのですが…テストサイトでも立ち上げて同じ環境で一時公開とかもできませんかね?

    トピック投稿者 isseiaone

    (@isseiaone)

    shokun0803さん

    お世話になります。
    テストサイト全然できます。
    是非お願いします。

    今からテストサイト用フォルダに現状丸々コピーしてそれからお知らせします。
    2時間ほどで。
    4/14 8:40am

    トピック投稿者 isseiaone

    (@isseiaone)

    shokun0803さん

    お世話になります。
    同じ環境でテストサイトを一時的に立ち上げました。

    http://www.bigballoon.jp/wp-clients10120613/

    このテストサイトでも同じ現象が出てしまいます。

    FireFoxでは問題なく、IEでは7.8両方ともhover時に画像が飛んでしまいます。

    何卒お力添えのほどよろしくお願いします。

    ちょっと検証させてください。お時間くださいませ。

    legacy.css 130行目にある

    #nav .sf-menu a:hover,
    #nav .sf-menu li:hover,
    #nav .sf-menu li.sfHover,
    #nav .sf-menu ul li  {
    background: url(../../images/content-bg.jpg) repeat-x top none; /* 謎 */
    color: #0052A3;
    }

    の #nav .sf-menu a:hover が 
    #menu-item-591 a:hover { background-position: 0 -50px; } より優先されてるためです。

    で謎の background 指定が、まともなブラウザだと無視してくれるんですが
    スカタンなブラウザだと中途半端にがんばるので当該の症状が出ます。

    ■結論
    130行目のスタイル指定を削除で OK◎

    全面的にスタイルの記述が謎めいてますので、今後も謎現象に遭遇したら
    あ、また謎スタイルが適用されとるな、と落ち着いて調べると良いです。

    ■スタイルがどう適用されているかを何で調べるか
    Firefox ならアドオンの Firebug
    IE なら Firebug Lite(ブックマークして使うヤツ)

    トピック投稿者 isseiaone

    (@isseiaone)

    kzさん

    あああああああああああ、本当にありがとうございます。
    嬉しすぎる。

    こちらも参考にさせていただきます。↓
    ■スタイルがどう適用されているかを何で調べるか
    Firefox ならアドオンの Firebug
    IE なら Firebug Lite(ブックマークして使うヤツ)

    お忙しい中本当にありがとうございました。
    また何かありましたらお力添えのほどよろしくお願いします。

    kzさん、ありやとやんした;)
    歓迎会に参加で検証する時間がなかったんです(汗
    解決してよかったですね^^

    トピック投稿者 isseiaone

    (@isseiaone)

    shokun0803さん

    お忙しい中本当にありがとうございました。
    いつも本当に助かります。

    ありがとうございました。
    ツイッターも拝見してます。^^

14件の返信を表示中 - 1 - 14件目 (全14件中)
  • トピック「固定ページのメニューを画像化したいPart2」には新たに返信することはできません。