2

我遇到了一个问题,我有一个左侧浮动的 div,里面有一个图像,然后在右侧有一堆 div。在兼容模式下,它在 FF、Chrome 和 IE9 中显示良好,但是在普通 IE9 中查看时,最底部的 div 被推到图像下方...

左div:

{
float: left;
clear: both;
margin-right: 10px;
} 

右 div(在 IE9 下显示的一个):

width: 350px;
float: right;
margin-left: 10px;
height: 150px;
overflow: hidden;

这是它在 IE9 中的样子:http: //i.imgur.com/tXgAZaN.png

这是它在 Chrome 或 FF 中的样子:http: //i.imgur.com/yLOFvew.png

4

3 回答 3

4

我认为这是那些明确解决的问题之一。我也时不时遇到这些问题。修复或破解方法是始终向其添加一个新元素,即所谓的伪元素,以使其正确呈现。所以

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
    *zoom: 1;
}

这里 cf 将是您的内容

它来自http://nicolasgallagher.com/micro-clearfix-hack/

我希望这能为你解决它,让我知道。

于 2013-03-27T17:37:26.547 回答
0

请尝试给你的左 div 一个宽度?并确保总和;-)

于 2013-03-27T17:34:58.097 回答
0

三件事要做。

  1. 分配左右 div 所在容器的总宽度。
  2. 将宽度分配给左侧宽度。这样右 div 的文本就不会合并在一起。
  3. 在右 div 之后放置另一个 clr 类的 div,以便清除左右 div 所在的容器内的浮动。

例子:

<div id="container">
  <div id="left_div">

  </div>
  <div id="right_div">

  </div>
  <div class="clr" style="clear:both;"></div>
</div>

它适用于每个浏览器。

请记住 left_div 和 right_div 的总宽度不应超过容器。

于 2013-03-27T19:16:11.913 回答