美文网首页
web清除浮动的几种方式

web清除浮动的几种方式

作者: 一座被占用 | 来源:发表于2018-04-23 16:01 被阅读0次

浮动对页面的影响:

如果一个父元素中包含一个子元素,父元素没有设置高度,子元素再父元素中进行了浮动。那么这个时候,父元素的高度为0,因此父元素的兄弟元素就会自动部位,那么这个时候就需要进行浮动的清除。

html代码及样式:

存在浮动问题的html html表现的样式 清除浮动后效果

解决方法:

方法一:直接给父元素添加 height 

    .div1{ height:200px; }

    原理:父元素div手动定义height,就解决了父元素div无法自动获取到高度的问题

    优点:简单、代码少、容易掌握

    缺点:只能使用高度固定的布局,要给出精确的高度,如果高度和父元素div不一样时,会产生问题

    建议:不推荐使用,只建议高度固定的布局时使用

方法二:结尾处加空的div标签:clear:both

修改上面的原来的代码为下面的样子:

    <div class = 'div1'>

        <div class='left'>LEFT</div>

        <div class='right'>RIGHT</div>

        <div class='clearfloat'></div>

    </div>

.clearfloat { clear : both; }

原理:添加一个空div 利用css提高的clear:both清除浮动,让父元素div能自动获取到高度

优点:简单、代码少、浏览器支持好、不容易出现怪问题

缺点:不少初学者不理解原理;如果页面浮动布局多,就要添加很多空div,感觉不好

建议:不建议使用,但此方法是以前主要使用的一种清除浮动方法

补充:css clear属性(点击此处访问

方法三:父元素div定义 伪类:after 和 zoom 

.div1:after{

    diaplay:block;

    clear:both;

    content:'';

    visibility:hidden;

    height:0;

}

.div1{  zoom:1; }

原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE专有属性)可解决IE6、IE7浮动问题

优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾讯,网易,新浪等)

缺点:代码多,不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持

建议:建议使用,建议定义公共类,以减少CSS代码

方法四:父类div定义 overflow:hidden

.div1{

    width:98%;

    overflow:hidden;

}

原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

优点:简单、代码少、浏览器支持好

缺点:不能和position配合使用,因为超出的尺寸会被隐藏

建议:只建议没有使用position或对overflow:hidden理解比较深的朋友使用

方法五:父元素div定义 overflow:auto

.div1{

    width:98%;

    overflow:auto;

}

原理:必须使用width或zoom:1;同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

优点:简单、代码少、浏览器支持好

缺点:内部宽高超过父元素div时间,会出现滚动条

建议:不建议使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧

最后

参考访问的页面:http://www.jb51.net/css/173023.html

另外还有几个不建议的没有列举出来,感兴趣的可以进入上面的网页查看。

另外:设置元素浮动后,该元素的display值自动变成block

相关文章

网友评论

      本文标题:web清除浮动的几种方式

      本文链接:https://www.haomeiwen.com/subject/zdkllftx.html