日期:2014-05-17  浏览次数:20787 次

[div+css]如何在适当的位置用clear关闭浮动float
HTML code

                <div class='item'>
            <span>数据</span>
            <span>数据</span>
            <span>数据</span>
            <span>数据</span>
            <span>数据</span>
            <span>数据</span>
            <span>数据</span>
            <span>信数据</span>
         </div>
                 <div class='item'>
                     ...其他内容
                 </div>


我想实现的效果:
一个DIV有边框的,里面有多个数据块;没有设置高度的。
多个文字数据显示在同一行,但是不同的数据块宽度不一样。于是我设置了span的效果display:block;width:**px;

问题:
这样造成一个问题,这个DIV里的那么多float没有关闭,在IE下感觉不出差别来。
但是在火狐下,发现DIV的高度只显示出2px;就是只能看到2条边框线,
而里面的span内容位移到DIV第一top边框下面来了,脱离了DIV,没有被DIV套住。
很显然,因为没有关闭float。

我的解决办法:
在float标签最后再加一个标签,设置CSS:clear:both;这样在火狐下就能正常显示了。
HTML code

   <div>
     .......主要内容
     <span style='clear:both'></span>
   </div>




我要问的是:
你们是如何解决这个问题的。方法是这样吗?还有其他更好的方法没有?

------解决方案--------------------
以前的帖子我是这样说的~
经试验,还可以这样: 
<div style=" float:left; background-color:#00ff00;"> 
<div style="float:left; background-color:#ff0000; height:250px; width:200px;">此处显示新 Div 标签的 </div> 
<div style="float:right;background-color:#0000ff; height:450px; width:200px;">此处显示新 Div 标签的内容 </div> 
</div> 
我来说原理~ 
应该父容器没有浮动,而子容器浮动了 
所以子容器就浮出了父容器 所以在父容器上加上float后 
子容器就在父容器内浮动了 

另外方法 
<div style=" overflow:auto;_height:1%; background-color:#00ff00;"> 
<div style="float:left; background-color:#ff0000; height:250px; width:200px;">此处显示新 Div 标签的 </div> 
<div style="float:right;background-color:#0000ff; height:450px; width:200px;">此处显示新 Div 标签的内容 </div> 
</div>
------解决方案--------------------
HTML code

你代码写的有问题.DIV+CSS并非让你烂用DIV.合理的布局才是硬道理.
看你上面代码所描述的.可以使用下面我的方法
<ul id="menu">
 <li><a>数据</a></li>
 <li><a>数据</a></li>
 .....
 <li class="item"></li>
</ul>