2012-11-13 64 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浏览器,但它与这个特定的问题没有关系。