整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML解决浮动塌陷的方法

么是浮动塌陷?

当子元素设置浮动时,父元素中所有孩子盒子都是float,则父容器的高度为0。

1.在父亲盒子中的最下边添加一个空div盒子,并设置clear为相应的值,如果不清除塌陷,那么父元素高度为0,给ul设置高度就没有效果。

clear常见取值如下:

left:清除左侧浮动引起的塌陷;

right:清除右侧浮动引起的塌陷;

both:清除左右两侧浮动引起的塌陷。

2.

天学会html+css,第九天固定定位。

Redmi手机电视笔记本。

今天的学习目标是右侧悬浮工具栏用固定定位实现,它是相对于浏览器窗口的定位方式。

·盒子里的内容用a标签,一个图片加一行文字,此时它的位置在最底部。

·然后给它写上固定定位样式,右侧距离0,下面距离70像素,加上背景颜色,看下效果。

·开始给a标签写样式,固定宽高,text-renderin默认下划线去掉,里面内容居中,看下效果。

·图片写样式之前也要加上这行代码,然后让它的尺寸变小一点,并且左右居中,看下效果。

·文字的颜色、大小也调整一下。

·最后给a标签加上边框、内边距,让里面内容往下挪一挪。

到此,今天的学习完成。

动的目的:把多个盒子放在一行上

清除浮动的目的:解决父盒子高度为0的问题

清除浮动,也称闭合浮动

注:本文不兼容IE6

未清除浮动实现情况:

图1

清除后:

图2

原代码:

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>清除浮动</title>

<style type="text/css">

.content{

width:960px;

margin:100px auto;

border: 1px solid #ccc;

}

.left{

width:400px;

height: 200px;

background-color: green;

float: left;

}

.right{

width: 400px;

height: 200px;

background-color: red;

float: right;

}

</style>

</head>

<body>

<div class="content">

<div class="left"></div>

<div class="right"></div>

</div>

</body>

</html>

复制代码

具体方法:

1.额外标签法

在含浮动标签后加兄弟盒子清除浮动

例:

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>清除浮动</title>

<style type="text/css">

.content{

width:960px;

margin:100px auto;

border: 1px solid #ccc;

}

.left{

width:400px;

height: 200px;

background-color: green;

float: left;

}

.right{

width: 400px;

height: 200px;

background-color: red;

float: right;

}

.clearbox{

clear:both;

}

</style>

</head>

<body>

<div class="content">

<div class="left"></div>

<div class="right"></div>

<div class="clearbox"></div>

</div>

</body>

</html>

复制代码

缺点:添加了许多空div

2.给父盒子overflow:hidden

触发bfc模式(该名词不懂请谷歌/百度,初学者可暂时略过),直接清除浮动

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>清除浮动</title>

<style type="text/css">

.content{

width:960px;

margin:100px auto;

border: 1px solid #ccc;

overflow: hidden;

}

.left{

width:400px;

height: 200px;

background-color: green;

float: left;

}

.right{

width: 400px;

height: 200px;

background-color: red;

float: right;

}

.clearbox{

clear:both;

}

</style>

</head>

<body>

<div class="content">

<div class="left"></div>

<div class="right"></div>

</div>

</body>

</html>

复制代码

缺点:不可与position属性配合使用

3.伪元素法

给父元素定义伪类:after(此处使用的是公共类clearfix)

复制代码

.clearfix:after{

content:"";/*内容为空*/

visibility:hidden;/*将元素隐藏,但是在网页中该占的位置还是占着*/

display:block;/*变成块级元素*/

height:0;

clear:both;/*清除浮动*/

}

复制代码

具体代码:

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>清除浮动</title>

<style type="text/css">

.clearfix:after{

content:"";/*内容为空*/

visibility:hidden;/*将元素隐藏,但是在网页中该占的位置还是占着*/

display:block;/*变成块级元素*/

height:0;

clear:both;/*清除浮动*/

}

.content{

width:960px;

margin:100px auto;

border: 1px solid #ccc;

}

.left{

width:400px;

height: 200px;

background-color: green;

float: left;

}

.right{

width: 400px;

height: 200px;

background-color: red;

float: right;

}

.clearbox{

clear:both;

}

</style>

</head>

<body>

<div class="content clearfix">

<div class="left"></div>

<div class="right"></div>

</div>

</body>

</html>

复制代码

缺点:IE8以上和非IE浏览器才支持

4.双伪元素法

给父类加上伪类:before和:after

复制代码

.clearfix:before,.clearfix:after{

content:"";

display:table;

}

.clearfix:after{

clear:both;

}

复制代码

具体代码:

复制代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>清除浮动</title>

<style type="text/css">

.clearfix:before,.clearfix:after{

content:"";

display:table;

}

.clearfix:after{

clear:both;

}

.content{

width:960px;

margin:100px auto;

border: 1px solid #ccc;

}

.left{

width:400px;

height: 200px;

background-color: green;

float: left;

}

.right{

width: 400px;

height: 200px;

background-color: red;

float: right;

}

.clearbox{

clear:both;

}

</style>

</head>

<body>

<div class="content clearfix">

<div class="left"></div>

<div class="right"></div>

</div>

</body>

</html>

复制代码

附:

对于上述4种方法,优先推荐方法3和4,当然1和2也可,可根据具体情况使用。

还有几种乱七八糟的清除浮动方法,但是缺点多,故不提起.

最后你觉得我们的文章对你有帮助,欢迎关注我,可以私信我:久伴,领取学习资料,在评论下方可以关注我的学习群,你可以随时在上面向我们提问,把你在学习前端过程中所遇到的问题发给我们。我们每天都会按时回复大家的每一个问题,希望久伴可以伴随你从入门到专家。