float带来的问题

float带来的问题
1.float: right 右浮动时,靠右换行(错行)的解决方法
描述:当非float的元素和float的元素在一起的时候,如果非float元素在先,那么float的元素将被排斥。把右浮动的标签放在正常标签的前面即可。

<div class="banner">
        <div class="no-float"></div>
        <div class="foat-r"></div>
    </div>

解决:把右浮动的标签放在正常标签的前面即可。

    <div class="banner">
        <div class="foat-r"></div>
        <div class="no-float"></div>
    </div>

2.浮动造成换行问题
描述:例子如:两个div设置了左浮动,想第三个div换行
(如果第三个也是左浮动,则宽度小于父元素剩余宽度的话,就不会换行;如果第三不是浮动等特殊情况,会覆盖第一个div位置,但文字不会覆盖而是环绕)


解决:给第三div设置style="clear:both"

3.浮动会造成 父元素塌陷 问题。
如果一个父元素的所有子元素都是浮动的,子元素的浮动确定了自身位置,尽管子元素有高度,但是不会影响到父元素的高度,那么这个父元素高度就是0(若没有指的宽度,就是父元素宽度)。如果想要父元素内的浮动元素占有父元素的高度,就需要清除浮动。

解决方法:
.parent:after {  
            content: " ";    
            display: block;   
            clear: both;     
        }  

还有两种不推荐的解决方法:

  • 在具有浮动元素的父容器中置“overflow”的属性值为“hidden”
  • 父容器设置position:absolute
  • 在容器的结束标签前添加一个空的div,在空div上直接设置样式“clear:both”
    参考
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容