2012-11-13 113 views
0

我已經搜索這個問題,這似乎是一個普遍的現象,但我還沒有找到解決方案,我的具體問題。只有Internet Explorer的DIV對齊問題

我的網頁在Firefox和Chrome以及Windows 8上的IE10上顯示得非常好。但是,任何其他IE版本都會將我的DIV全部搞亂。

網站:http://d2canton.pitmanstats.com

正確的佈局:谷歌廣告是下面的導航欄,並對齊,以白內容部分的左側,與表(隊列表)的廣告的權利。

在檢查了IE,Chrome和Firefox之間的元素並進行比較之後,看起來似乎是這個問題,但根據我的看法,源代碼看起來非常好:在Internet Explorer中, 「clearfix」和「main-fullwidth」DIV從同一點開始(如在每個DIV的頂部與另一個DIV相同),與「header」div的底部齊平。

但是,「main-fullwidth」DIV應該在「clearfix」DIV後面/後面開始。

我似乎無法理解爲什麼會發生這種情況。

下面是從index.php中相關代碼:

<body class="home blog custom-background"> 
<div id="container"> 
    <?php include('includes/header.php'); ?> 
    <?php include('includes/outer_nav.php'); ?> 
    <div id="main-fullwidth"> 
<section style="display:block; overflow: hidden; border: 0px; padding:0px; "> 
    <aside style="display:block; float: left; width: 180px; "> 
     <?php include('includes/left_sidebar.php'); ?> 
    </aside> 
    <div style="margin-left:180px;"> 
     <?php include('includes/inner_header.php'); ?> 
<!-- CONTENT STARTS HERE --> 
<!-- CONTENT ENDS HERE --> 
    </div> 
</section> 
    </div><!-- #main-fullwidth --> 

這裏是outer_nav.php(包含 「clearfix」):

<div class="clearfix"> 
    <div class="menu-primary-container"> 
     <ul id="menu-custom-primary-menu" class="menus menu-primary"> 
      <li id="menu-item-241" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-241"><a href="http://www.pitmanstats.com" >Home</a></li> 
      <li id="menu-item-236" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-236"><a href="http://www.pitmanstats.com/pages/" >My Pages</a> 
      <ul class="sub-menu"> 
       <li id="menu-item-242" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-242"><a>DII Canton District</a></li> 
       <li id="menu-item-243" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-243"><a>DIII Wooster District</a></li> 
       <li id="menu-item-245" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-245"><a>Triway Basketball</a></li> 
       <li id="menu-item-244" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-244"><a>Quarter&#8217;s Corner</a></li> 
      </ul> 
      </li> 
      <li id="menu-item-441" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-441"><a href="http://www.pitmanstats.com/mobile/" >Mobile Apps</a></li> 
      <li id="menu-item-240" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-240"><a>About</a> 
      <ul class="sub-menu"> 
       <li id="menu-item-237" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-237"><a href="http://www.pitmanstats.com/about/about-me/" >About Me</a></li> 
       <li id="menu-item-238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="http://www.pitmanstats.com/about/history-of-pitmanstats-com/" >History of PITmanStats.com</a></li> 
       <li id="menu-item-239" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-239"><a href="http://www.pitmanstats.com/about/contact/" >Contact</a></li> 
      </ul> 
      </li> 
     </ul> 
    </div><!--.primary menu--> 
    <div id="topsearch"> 
     <div id="search" title="Type and hit enter"> 
      <form method="get" id="searchform" action="http://www.pitmanstats.com/"> 
       <input type="text" value="Search" name="s" id="s" onblur="if (this.value == '') {this.value = 'Search';}" onfocus="if (this.value == 'Search') {this.value = '';}" /> 
      </form> 
     </div><!-- #search --> 
    </div><!-- topsearch --> 
</div><!-- clearfix --> 

然後,所有 「left_sidebar.php」 是一個谷歌廣告。

同樣,在我看來,這是一個問題,「主全寬」不正確地啓動Internet Explorer中的「清除」後,而是在同一位置開始。這會導致廣告嘗試對齊左側,但它會立即在導航菜單的右側對齊。

如果您有任何問題或需要更多詳細信息,請讓我知道。這在過去有效,但最近停止了工作。謝謝!

回答

1

看起來像你正在使用的一些html5標籤造成了問題。 aside標記似乎是在IE9中打破布局的元素之一。我用一個很好的舊潛水來重新修復它,並將它重新放回到<section>。你只需要製作一些條件式的css來使它看起來一致。祝你好運。

使用按F12在IE上進行調試。

這是圖片。

enter image description here

+0

謝謝你的評論。我已經做了修改,將ASIDE轉換爲DIV。我修改了index.php和inner_header.php中的代碼(都使用了ASIDE標籤)。不過,我仍然看到佈局問題。看起來,現在隊伍列表現在正確對齊,位於廣告右側,但廣告本身仍然過高,位於導航菜單旁邊,而不是下面。 「section」是一個有效的標籤嗎? – thePITman

+0

'section'是html5中的有效標記,大多數舊式瀏覽器不支持它,儘管它們可以呈現任何標記。現在我只用'divs li的跨度表'來安全地玩,因爲你正在構建的東西可以與它們一起服務。 – andrewk

+0

andrewk,謝謝你的幫助。這些提示有助於清理我的佈局。我已將決議提交給我的具體問題,作爲對此主題的單獨回覆。它處理了IE9及以下版本不支持的「after:」風格,所以我必須應用「明確:兩者;」使用內聯樣式到「主全寬度」DIV。 – thePITman

0

經過進一步的研究(與CSS大師同事說話),這聽起來像「CSS3」標記,如部分甚至風格,如「後」都沒有在IE9和支持下面,這可以解釋爲什麼IE10可以正常工作。其中一種固有的應用於我的「主全寬度」DIV的風格是「清晰:兩者」。但是由於這個屬性是在「:after」風格中的,所以它並沒有在IE中被應用。

所以,我補充說:「明確:兩者都是;」作爲「main-fullwidth」DIV的內聯樣式,現在它開始於「clearfix」之後/之下,而不是覆蓋它。

這解決了手頭的問題。 Chrome/Firefox可以讀取「CSS3」的內容,例如「:after」風格,但在IE中,我必須直接使用內聯樣式來應用「:after」。

我仍然有應用樣式(如懸停鏈接顯示方式太多填充)的其他問題,在Chrome中但不IE瀏覽器,但它與這個特定的問題沒有關係。