2011-07-26 11 views
1

浮動小数点型のdivの後ろに絶対配置されたdivが隠れている問題があります。私はこのことに対する答えをスタックで読んだことがありますが、何も試したことがないので、ここでソースコードを削除します。私は何が欠けているのか分からない。IE7で絶対位置指定要素エラー

「ブラウズ」テキストをクリックすると、jqueryでいくつかのオプションのメニューが開きます。オプションは絶対配置されたdivにあり、ie7モードではその下のdivコンテンツの後ろに表示されます。私はこの結果を得るためにIE7モード+ IE7標準でIE9を使用しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us"> 
    <head> 
     <title>IE7 Absolutely Positioned Element Issue</title> 
     <style type="text/css"> 
      * { font-family: Tahoma; font-size: 8pt; padding: 0; margin: 0; border: 0 none; } 
      div.section { width: 400px; margin: 0 auto; border: 1px solid #444444; margin-top: 5px; } 
      div.toggleBrowseMenu { cursor: pointer; padding-left: 5px; position: relative; } 
      div.browseMenu { border: 1px solid #E2E2E2; position: absolute; width: auto; height: auto; left: -3px; top: 19px; padding: 0px; background-color: #FFFFFF; display: none; text-align: left; z-index: 10; } 
      div.browseMenu ul { list-style-type: none; } 
      div.browseMenu li { background-color: transparent; padding: 3px 7px; margin: 0px; white-space: nowrap; } 
      div.browseMenu li:hover { text-decoration: underline; } 
     </style> 
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    </head> 
    <body> 
     <div class="section" style="position: realtive;"> 
      <div style="float: left; padding-left: 100px;"> 
       Left Content 
      </div> 
      <div class="toggleBrowseMenu" style="float: right; padding-right: 100px;"> 
       Browse 
       <div class="browseMenu"> 
        <ul> 
         <a href="http://www.google.com/"><li>Google</li></a> 
         <a href="http://www.yahoo.com/"><li>Yahoo</li></a> 
         <a href="http://www.bing.com/"><li>Bing</li></a> 
        </ul> 
       </div> 
      </div> 
      <div style="clear: both;"></div> 
     </div> 
     <div class="section"> 
      <div style="position: relative;"> 
       <div style="float: left; width: 40%; padding: 5%;"> 
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque at augue at 
        tellus tristique porta. Nulla rhoncus tincidunt turpis, eu mattis dui 
        scelerisque in. Vivamus lectus velit, consectetur at pellentesque dignissim, 
        faucibus id lacus. Aliquam ut eros at erat convallis tincidunt id vel velit. 
        Pellentesque commodo, nulla sed malesuada convallis, ipsum nulla viverra lorem, 
        et mattis sapien nibh nec magna. Donec a nibh ligula. Suspendisse at convallis 
        libero. Phasellus cursus nibh at mi aliquet venenatis. Donec non tortor vitae 
        sapien facilisis imperdiet. Proin molestie tempor dapibus. Suspendisse potenti. 
        Nulla facilisi. Suspendisse risus est, faucibus sit amet laoreet in, cursus ut 
        augue. Cras mollis venenatis est, nec vehicula massa pellentesque et. 
       </div> 
       <div style="float: left; Peach; width: 40%; padding: 5%;"> 
        Fusce adipiscing odio quis massa placerat euismod. In eu eros orci. Aenean 
        mollis luctus velit ac sollicitudin. Cras elit erat, semper quis fringilla ac, 
        placerat sed justo. Duis sed tellus risus, fermentum pellentesque nunc. 
        Phasellus mollis tempus eros, posuere dictum augue gravida at. Praesent 
        sollicitudin justo ac purus iaculis auctor. Suspendisse potenti. Praesent 
        vehicula fermentum sem in ullamcorper. Donec pharetra ante vitae urna pharetra 
        dignissim. Suspendisse tincidunt felis elementum lorem imperdiet ullamcorper. 
        In malesuada, arcu a porta tincidunt, nisl elit pulvinar lacus, in dictum velit 
        odio eget risus. Integer cursus dapibus tortor ut congue. Nunc mattis mollis 
        justo. Aliquam quis tellus tellus, eu sagittis tellus. Class aptent taciti 
        sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. 
       </div> 
       <div style="clear: both;"></div> 
      </div> 
     </div> 
     <script type="text/javascript"> 
      // Toggle the browse menu. 
      $('.toggleBrowseMenu').click(function() 
      { 
       $(this).find('.browseMenu').toggle(); 
      }); 

      // Hide the browse menu when the mouse leaves the tag. 
      $('.browseMenu').mouseleave(function() 
      { 
       $(this).hide(); 
      }); 
     </script> 
    </body> 
</html> 
+0

確かに、リスト項目タグからアンカータグを削除するこれらの ''

  • Google
  • S/B '
  • Google
  • ' –

    +0

    は効果がありません。 – Halcyon

    答えて

    1

    大丈夫です!ここに私達が得たものがある。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us"> 
    <head> 
        <title>IE7 Absolutely Positioned Element Issue</title> 
        <style type="text/css"> 
         * { font-family: Tahoma; font-size: 8pt; padding: 0; margin: 0; border: 0 none; z-index:1;} 
         /* z-index to 1 for everything*/ 
         div.section { width: 400px; margin: 0 auto; border: 1px solid #444444; margin-top: 5px; } 
         div.toggleBrowseMenu { cursor: pointer; padding-left: 5px; position: relative;} 
         div.browseMenu { border: 1px solid #E2E2E2; position: absolute; width: auto; height: auto; left: -3px; top: 19px; padding: 0px; background-color: #FFFFFF; display: none; text-align: left; z-index: 10; } 
         /*set z-index to 10 here! */ 
         div.browseMenu ul { list-style-type: none; } 
         div.browseMenu li { background-color: green; padding: 3px 7px; margin: 0px; white-space: nowrap; } 
         div.browseMenu li:hover { text-decoration: underline; } 
        </style> 
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
    </head> 
    <body> 
        <div class="section"> <!-- you didn't this to be relatively positioned --> 
         <div style="float: left; padding-left: 100px;"> 
          Left Content 
         </div> 
         <div class="toggleBrowseMenu" style="float: right; padding-right: 100px;"> 
          Browse 
          <div class="browseMenu"> 
           <ul> 
            <a href="http://www.google.com/"><li>Google</li></a> 
            <a href="http://www.yahoo.com/"><li>Yahoo</li></a> 
            <a href="http://www.bing.com/"><li>Bing</li></a> 
           </ul> 
          </div> 
         </div> 
         <div style="clear: both;"></div> 
        </div> 
        <div class="section"><!-- removed wrapping div with relative positioning here--> 
         <div style="float: left; width: 40%; padding: 5%;"> 
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque at augue at 
          tellus tristique porta. Nulla rhoncus tincidunt turpis, eu mattis dui 
          scelerisque in. Vivamus lectus velit, consectetur at pellentesque dignissim, 
          faucibus id lacus. Aliquam ut eros at erat convallis tincidunt id vel velit. 
          Pellentesque commodo, nulla sed malesuada convallis, ipsum nulla viverra lorem, 
          et mattis sapien nibh nec magna. Donec a nibh ligula. Suspendisse at convallis 
          libero. Phasellus cursus nibh at mi aliquet venenatis. Donec non tortor vitae 
          sapien facilisis imperdiet. Proin molestie tempor dapibus. Suspendisse potenti. 
          Nulla facilisi. Suspendisse risus est, faucibus sit amet laoreet in, cursus ut 
          augue. Cras mollis venenatis est, nec vehicula massa pellentesque et. 
         </div> 
         <div style="background-color:red; float: left; width: 40%; padding: 5%;"> 
          Fusce adipiscing odio quis massa placerat euismod. In eu eros orci. Aenean 
          mollis luctus velit ac sollicitudin. Cras elit erat, semper quis fringilla ac, 
          placerat sed justo. Duis sed tellus risus, fermentum pellentesque nunc. 
          Phasellus mollis tempus eros, posuere dictum augue gravida at. Praesent 
          sollicitudin justo ac purus iaculis auctor. Suspendisse potenti. Praesent 
          vehicula fermentum sem in ullamcorper. Donec pharetra ante vitae urna pharetra 
          dignissim. Suspendisse tincidunt felis elementum lorem imperdiet ullamcorper. 
          In malesuada, arcu a porta tincidunt, nisl elit pulvinar lacus, in dictum velit 
          odio eget risus. Integer cursus dapibus tortor ut congue. Nunc mattis mollis 
          justo. Aliquam quis tellus tellus, eu sagittis tellus. Class aptent taciti 
          sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. 
         </div> 
         <div style="clear: both;"></div> 
        </div> 
        <script type="text/javascript"> 
         // Toggle the browse menu. 
         $('.toggleBrowseMenu').click(function() 
         { 
          $('.browseMenu').toggle(); 
         }); 
    
         // Hide the browse menu when the mouse leaves the tag. 
         $('.browseMenu').mouseleave(function() 
         { 
          $(this).hide(); 
         }); 
        </script> 
    </body> 
    </html> 
    

    私はIE7のテスターではなく、実際のIE7を使用していますので、今、このソリューションで私を引用していないが、それは通常私のために動作します。現在、あなたの右側の背景色を赤に変更しました。あなたはそれを修正することができます。

    何が間違っていたのですか?スタイリングのためにコンテンツを含むセクションクラスを「position:relative」で囲んでいる別のdivがありました。 divは名前がなく、したがってスタイルシートで参照できなかったので削除しました。また、最初のセクションのdivクラスでは、あなたがそれを必要としないため、完全に削除した方法の相対的なスペルミスがありました。私はすべてのアイテムのZ-インデックスを最初に1に設定し、.browsemenuクラスのZ-インデックスを10に設定しました。 また、「Fusce adipi ....」という段落が始まり、「peach」という単語がランダムに含まれたdivラップスタイルを参照しています。

    すべての編集内容についてコメントしました。 幸運と私はこれが助けて欲しいと思います。

    +0

    これは現在機能しています。私は上部と下部にzインデックスを適用し、上部のセクションは底部よりも高いzインデックスを持っていました。助けてくれてありがとう! – Halcyon

    +0

    問題ありません。 IE7はトリックスターです。 – SomeShinyObject

    1

    なぜコンテンツがメニューに表示されるのかわかりません。 z-indexは、兄弟に対してのみ適用されます。一番上のセクションにz-indexを追加して、relativeも正しく入力すると、メニューが表示されるはずです。

    +0

    トップに高いz-インデックスを追加し、相対的に配置されたボトムdivを適用することは、私がする必要があることでした。 – Halcyon

    関連する問題