3

ホバーを使用して IE6 で動作するサッカーフィッシュ スタイルのドロップダウン メニューを取得しようとしていますが、私の人生では第 3 レベルを表示することはできません。これについて何か助けていただければ幸いです。

私のフィドル

コードHTMLは次のとおりです。

<!DOCTYPE html>
<html>
   <body>
        <header>
            <link rel="stylesheet" type="text/css" href="styleIE.css" />
        </header>
        <form>
            <div id="container">
               <div id = "menu">
                    <ul id="nav">
                        <li><a class="rhlinkstart" href="#"><span>Home</span></a></li>
                        <li><a class="rhlink" href="#"><span>Blad<br> Securities</span></a></li>
                        <li><a class="rhlink" href="#"><span>Market<br> Update</span></a></li>
                        <li><a class="rhlink" href="#"><span>Membership</span></a></li>
                        <li><a class="rhlink" href="#"><span>asdasd Info</span></a>
                            <ul>
                                <li><a class="linkchild" href="#"><img class = "arrow" src="Images/arrow.gif" alt="&#9658;">About the DOOB</a>
                                    <ul>
                                        <li><a class="linkchild" href="#">DOOB Explained</a></li>
                                        <li><a class="linkchild" href="#">DOOB Jurisdications</a></li>
                                    </ul>
                                </li>
                                <li><a class="linkchild" href="#">International Recogintion</a></li>
                                <li><a class="linkchild" href="#"><img class = "arrow" src="Images/arrow.gif" alt="&#9658;">Advantages of listing</a> 
                                     <ul>
                                        <li><a class="linkchild" href="#">Advantages of Listing</a></li>
                                        <li><a class="linkchild" href="#">Offers</a></li>
                                    </ul>
                                </li>
                                <li><a class="linkchild" href="#">Advantages Of Membership</a></li>
                                <li><a class="linkchild" href="#">Publications</a></li>
                                <li><a class="linkchild" href ="#">Links</a></li>
                            </ul>
                        </li>
                        <li><a class="rhlinkend" href="#"><span>Contact Us</span></a></li>
                       <li>&nbsp;</li>
                    </ul>
               </div>
            </div>
        </form>
     </body>
</html>

CSS:

body{
  line-height:1;
  background: #e3e3e3; 
  behavior: url("csshover3.htc");
}

/*------------------------------------*\
 Main
\*------------------------------------*/
div#container
{
    width:1024px; 
    margin:0 auto;
    position: relative;
    text-align: center;
    background-color: white;
    border: 1px solid #8b8b8b;
 }

.contentwrapper {
    width: 964px;
    margin: 0px auto;
    text-align: left;
    height: 100%;
}

.clearall {
 clear: both;
}


/*------------------------------------*\
   Home Page - Menu Styling
\*------------------------------------*/

#menu {
    margin: 0 auto;
    padding-left: 2%;
    height: 47px;
    position: relative;
    top: 0;
    border: 1px solid rgb(140,51,61);
    font-size: 75%;
    display: block;
}
#nav {
     margin:0;
     padding:0;
     list-style-type:none;
     list-style-position:outside;
     position:relative;
     height:47px;
     background: none;
     background-color: transparent;
     width: 100%;
}

#nav ul {
     margin:0;
     padding:0;
     list-style-type:none;
     list-style-position:outside;
     position:relative;
}

#nav a.rhlinkstart:link, #nav a.rhlinkstart:active, #nav a.rhlinkstart:visited {
    position: relative;
    float:left;
    font-family: Georgia;
    color: rgb(131,0,26);
    width: 148px;
    text-align: center;
    height: 47px;
    margin-right: -.07em;
    margin-left: 0.5em;
    line-height: 47px;
    text-decoration: none;
}

#nav a.rhlink:link, #nav a.rhlink:active, #nav a.rhlink:visited {
    position: relative;
    float:left;
    font-family: Georgia;
    color: rgb(131,0,26);
    width: 148px;
    text-align: center;
    height: 47px;
    margin-left: -47px;
    line-height: 47px;
    text-decoration: none;
    display: block;
}

#nav a.rhlinkend:link, #nav a.rhlinkend:active, #nav a.rhlinkend:visited {
    float:left;
    position: relative;
    color: rgb(131,0,26);
    width: 148px;
    height: 47px;
    line-height: 47px;
    margin-left: -3.780em;
    font-family: Georgia;
    text-decoration: none;
}

#nav li {
    float:left;
    position:relative;
    display: block;
}

li a.rhlink span {
    line-height: 1em;
    text-decoration: none;
    text-align: center;
    display: inline-block;
    vertical-align: middle;
}

#nav li a.rhlink:hover, 
#nav li a.rhlinkstart:hover,
#nav li a.rhlinkend:hover
{
    background: red;
    color: white;
    text-decoration: none;
}

#nav a.linkchild:link,
#nav a.linkchild:active,
#nav a.linkchild:visited 
{
    display:block;
    padding:0px 10px;
    text-decoration:none;
    color: white;
    background: pink ;
}

#nav a.linkchild:hover {
   background: rgb(118,0,18);
   color: white;
}

#nav ul {
    position:absolute;
    top:47px;
    left:0;
    margin: 0;
    width:200px;
    display:none;
}

#nav li ul a {
    width:15em;
    float:left;
    display: inline-block;
    line-height: 2.5em;
    text-align: left;
    vertical-align: middle;
}

#nav li {
     display: inline-block !important;
     float: left;   
}

#nav li a {
    display: inline-block !important;   
    vertical-align: middle;
}

#nav ul ul {
    top:auto;
}

#nav li ul ul {
    left:200px;
    margin:0;
}

#nav ul ul li ul {
    left:200px;
    margin:0;
}

#nav ul ul {
   display:none;
}

#nav li:hover ul {
   display:block;
}

/* 2 and 13 */
#nav ul ul, 
#nav li:hover ul ul { 
   display:none;
}

/* 12 and 23*/
#nav li:hover ul, #nav li:hover li:hover ul { 
   display:block;
}
4

4 に答える 4

5

考えられる解決策の 1 つ:

display:inline-blockIE6 には深刻なバグがあります。代わりに試してみることをお勧めしdisplay:inlineます。

それに加えて、要素を「hasLayout」モードにするように IE をトリガーするために何かを行う必要もあります。これは IE の内部フラグであるため直接行うことはできませんが、多くの CSS プロパティのいずれかを設定するとトリガーされます。使用する最も一般的なものはzoom:1、それ以外の効果があまりなく、他のブラウザーによって無視されるためです。

動作する場合は、IE6 CSS ハックを使用して、他のブラウザーが引き続き使用できるようにしinline-blockます。アンダースコアハックまたは条件付きコメントを使用することをお勧めします。

アンダースコアハックを使用したコードは次のとおりです。

display:inline-block;
_display:inline;
zoom:1;

それが役立つことを願っています。

[注: hasLayout を含めるように回答を編集し、IE6 css ハック オプションを拡張し、コードのチャンクを提供します]

于 2012-07-20T06:54:37.853 に答える
5

HTML5 を使用しているようですが、古いブラウザーで HTML5 タグを認識できるようにする HTML5 shiv を使用していないようです。

http://code.google.com/p/html5shiv/

また、持っていないように見えるドキュメントの通常の「head」タグ内ではなく、HTML5 の「header」タグ内にスタイルシートをロードしています。

これらの問題を修正すると、問題の解決に役立つ場合があります。

于 2012-07-18T11:27:17.243 に答える
0

コメントありがとうございます。最終的にメニューをゼロから書き直し、IE6 で動作するようにしました。私はIE6が死んでいることを知っていますが、私のクライアントの最大のクライアントはこのブラウザを使用しています:(だからそれをしなければなりませんでした.

于 2012-07-26T08:13:29.543 に答える
0

この時点で、Internet Explorer 6 は死んでいます。実際、それは死を超えています。IE6 ユーザー エージェントの 99.9% はボットであり、3人の訪問者が現れませんでした。私のブラウザーの市場シェアは DOM オブジェクト検出に基づいているため、ユーザー エージェントに基づく統計とは異なり、実際には信頼できます。たとえ IE6 が実際に 10% のマーケット シェアを持っていると思い込ませることができたとしても、それが今までも、そしてこれからも縮小し続けるという事実に対処する必要があります。IE7 を使用している訪問者は 1 桁しかいないので、実際に IE7 をテストすることさえ気にしません。この時点で IE6/7 に費やされた時間と費用は、クライアントが完全に設定されておらず、IE6/7 固有のバグを修正するために 1 時間あたり 50 ドルを支払うほど気が狂っていない限り、正当化することはできません。

于 2012-07-25T15:49:16.210 に答える