2012-04-10 12 views
0

サイドバーのネストされたリストを持つWebサイトを開発しています。親の李は子の構造を持っています。最初の表示では4 li(リスト項目)が表示され、4項目以上は「すべて表示」オプションへのリンクで非表示にする必要があります。IE 7ネストされたリスト内のバグダグは分割レイアウトです

の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、クロム、およびIE8で正常に動作しているが、IE7中のLiに含まれています。そこに含まれるlisは、レイアウトを破っているdivからレンダリングされます。私はコードから削除して、そのうまく動作しますが、プロジェクトの要件を満たすためには、リスト項目を4つの理由で非表示にする必要があります。なぜなら、divのリスト項目をデフォルトで非表示にする理由です。

私はこの問題を解決し、専門家に助言を得るためにオンラインデモページをセットアップしました。このページのライブデモページを見ることができます:http://tinyurl.com/7pqo5ob

注:リスト項目とdivがIEでレンダリングされる方法を理解するために、いくつかの枠線を追加しました。他のブラウザではうまく動作していますが、IE7ではうまく動作しません。私は無駄に多くのオプションを試しました。

お知らせください。

ありがとうございます。

+0

あなたは標準モードにIEを切り替えるために使用していますか? http://www.quirksmode.org/css/quirksmode.html –

+0

@MichaelSladeあなたの懸念に感謝します。私は異なったとのページをテストしたが、didnt仕事。最後に私はそれを得てバグを修正しました。 –

答えて

0

ありがとうございます。私は多くのトリックを試み、ついにそれを得ました。実際の問題は、順序付けられていないリストとリストアイテムの構造体に入れられていました。 "LI"の内部構造では、デフォルトで隠されるべき "DIV"タグを配置しました。これは、IE 7がレイアウトを破り始めるところでした。私は "DIV"タグを削除する場合はそれは大丈夫だったが、プロジェクトの要件では、 "DIV"は、 "LI"を隠すために存在する必要があります。

何時間もの不満の後、私はIE7や他のブラウザでも "DIV"を "LI"に変更しようとしました。

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

<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で細かい作業ライブこのページをチェックすることができます。 リンク:<!DOCTYPE HTML>http://www.designforce.us/demo/kktc/index.html

おかげ

関連する問題