0

サイドバーのネストされたリストを持つWebサイトを開発しています。親liには子li構造があります。最初の表示では4つのli(リストアイテム)が表示され、4つ以上のアイテムは[すべて表示]オプションへのリンクで非表示にする必要があります。

htmlコード:

<div id="sideMenuBox">
<div class="header">
    <h2 class="cufon">KATEGORİLER</h2>
    <a class="moreLink" href="#" title="">Tümü</a>
</div>
<div class="body"> <!-- menubox body -->
    <ul id="sideMenu">
        <li>
            <span><img src="images/icon-1.png" alt="icon" width="32" height="19" /></span>
            <a href="#" title="">Alışveriş Merkezleri</a>
            <ul>
                <li><a href="#" title="">Online Alışveriş Siteleri</a></li>
                <li><a href="#" title="">Kuyumcular</a></li>
                <li><a href="#" title="">Hediyelik Eşya</a></li>
                <li><a href="#" title="">Çiçek Sektörü</a></li>
                <div class="sbSubMenu" style="border:black 1px solid">
                    <li><a href="#" title="">Kuyumcular</a></li>
                    <li><a href="#" title="">Kuyumcular</a></li>
                    <li><a href="#" title="">Kuyumcular</a></li>
                    <li><a href="#" title="">Kuyumcular</a></li>
                </div>  <!--// sidebar submenu -->
                <li><a class="showAll" href="javascript:" title="" onclick="javascript:showMenu(this);">show all</a></li>
            </ul>
            <br class="clearFix" />
        </li>
    </ul>
</div> <!-- // menubox body -->
<div class="bottom"></div>
</div> <!-- // sideMenuBox -->

およびCSSコードは次のとおりです。

#sideMenu { 
width:200px; height:auto;
margin:10px auto;
}
#sideMenu li{ 
list-style-type:none; 
min-height:25px;
line-height:18px;
height:auto;
border:blue 1px solid;
}
#sideMenu hr { width:100%; height:1px; color:#e69000; background:#e69000; margin:10px auto 5px; border:0;}
#sideMenu li span { width:40px; float:left;}
#sideMenu li a{ 
color:#003a69;
text-decoration:none;
font-size:16px;
font-weight:bold;
margin:0; padding:0;
}
#sideMenu li li { 
margin-left:50px; 
display:inline-block; 
line-height:20px; 
border:red 1px solid;
}
#sideMenu li li a { font-size:13px; height:1px;}
#sideMenu li li a.showAll,
#sideMenu li li a.showLess{ 
color:006aa6; 
text-decoration:underline; 
font-size:12px; 
font-weight:normal;
margin:10px 0;
padding-right:15px;
background:url(../images/arrow-down-blue.png) right center no-repeat;
}
#sideMenu li li a.showLess{ background:url(../images/arrow-up-blue.png) right center no-repeat;}
#sideMenu .sbSubMenu { 
width:100%; height:auto;
}

これらのコードはFirefox、Chrome、IE8で正常に機能していますが、IE7ではliに含まれています。に含まれているlisは、レイアウトを壊しているdivからレンダリングしています。コードからを削除すると正常に機能しますが、プロジェクトの要件を満たすには、4つの後にリストアイテムを非表示にする必要があります。そのため、デフォルトで非表示にするdivでリストアイテムを囲みました。

この問題を解決し、専門家にアドバイスを求めるために、オンラインデモページを設定しました。このページのライブデモページを見ることができます:http://tinyurl.com/7pqo5ob

注:IEでリストアイテムとdivがどのようにレンダリングされるかを理解するために、いくつかの境界線を追加しました。他のブラウザでは正常に動作しますが、IE7ではうまく機能しません。私は多くのオプションを試しましたが、無駄でした。

お知らせ下さい。

前もって感謝します。

4

1 に答える 1

0

心配していただきありがとうございます。私は多くのトリックを試しましたが、ついにそれを手に入れました。実際の問題は、ネストされた順序付けされていないリストとリストアイテムの構造にありました。「LI」の内部構造に、デフォルトで非表示になる「DIV」タグを配置しました。これは、IE7がレイアウトを壊し始めるポイントでした。「DIV」タグを削除すれば問題ありませんが、プロジェクト要件では、「LI」を非表示にするために「DIV」が必要です。

何時間も欲求不満を感じた後、私は「DIV」を「LI」に変更しようとしましたが、IE7や他のブラウザでも正常に機能します。

最終的なコードは次のとおりです。

<ul id="sideMenu">
  <li>
       <span><img src="images/icon-1.png" alt="icon" width="32" height="19" /></span>
       <a href="#" title="">Alışveriş Merkezleri</a>
       <ul>
           <li><a href="#" title="">Online Alışveriş Siteleri</a></li>
           <li><a href="#" title="">Kuyumcular</a></li>
           <li><a href="#" title="">Hediyelik Eşya</a></li>
           <li><a href="#" title="">Çiçek Sektörü</a></li>
           <li class="sbSubMenu"> <!-- hidden list items -->
              <ul>
                  <li class="innerList"><a href="#" title="">Kuyumcular</a></li>
                  <li class="innerList"><a href="#" title="">Kuyumcular</a></li>
                  <li class="innerList"><a href="#" title="">Kuyumcular</a></li>
                  <li class="innerList"><a href="#" title="">Kuyumcular</a></li>
              </ul>
           </li>  <!-- // sidebar submenu -->
           <li class="Link"><a class="showAll" href="javascript:" title="" onclick="javascript:showMenu(this);">show all</a></li>
       </ul>
     </li> <!-- // main List Item --->
   </ul>

このページはIE7で正常に動作していることを確認できます。リンク:http ://www.designforce.us/demo/kktc/index.html

ありがとう

于 2012-04-15T20:41:15.747 に答える