浮动
浮动特性
1、浮动元素有左浮动(float:left)和右浮动(float:right)两种
2、浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来
3、相邻浮动的块元素可以并在一行,超出父级宽度就换行
4、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)
5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
6、父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素,父元素需要清除浮动
7、浮动元素之间没有垂直margin的合并
文字绕图代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.box{
width:450px;
height:210px;
border:1px solid #000;
margin:50px auto 0;
}
.box img{
float:left;
margin:10px;
margin-bottom:0;
}
.box div{
margin:10px;
font-size:14px;
line-height:22px;
}
</style>
</head>
<body>
<div class="box">
<img src="./代码/images/goods.jpg" alt="h5的标志">
<div>
1、浮动元素有左浮动(float:left)和右浮动(float:right)两种
2、浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来
3、相邻浮动的块元素可以并在一行,超出父级宽度就换行
4、浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内块元素间隙问题)
5、浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的效果
6、父元素如果没有设置尺寸(一般是高度不设置),父元素内整体浮动的元素无法撑开父元素
</div>
</div>
</body>
</html>
截图:
请使用浮动制作图中所示的菜单:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菜单</title>
<style type="text/css">
.menu{
width:694px;
height:50px;
/* background-color:cyan; */
/* 去掉小圆点 */
list-style:none;
margin:50px auto 0;
padding:0;
}
.menu li{
width:98px;
height:48px;
border:1px solid gold;
background-color:#fff;
/* display:inline-block; */
/* 左浮动 */
float:left;
margin-left:-1px;
}
.menu li a{
/* background-color:gold; */
display:block;
width:98px;
height:48px;
text-align:center;
line-height:48px;
text-decoration:none;
font-size:16px;
font-family:'Microsoft Yahei';
color:pink;
}
.menu li a:hover{
background-color:gold;
color:#fff;
}
</style>
</head>
<body>
<!-- ul.menu>(li>a{公司简介})*7 -->
<ul class="menu">
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司简介</a></li>
</ul>
</body>
</html>;
清除浮动
父级上增加属性overflow:hidden
在最后一个子元素的后面加一个空的div,给它样式属性 clear:both(不推荐)
使用成熟的清浮动样式类,clearfix
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.list{
width:210px;
/* height:400px; */
border:1px solid #000;
margin:50px auto 0;
list-style:none;
padding:0;
/*
第一种清除浮动的方法:
overflow: hidden;
*/
}
.list li{
width:50px;
height:50px;
background-color:gold;
margin:10px;
float:left;
}
/* .clearfix:before{
content:"";
display:table;
}
.clearfix:after{
content:"";
display:table;
clear:both;
} */
.clearfix:before,.clearfix:after{
content:"";
display:table;
}
.clearfix:after{
clear:both;
}
.clearfix{
zoom:1;
}
</style>
</head>
<body>
<!-- ul.list>li{$}*8 -->
<ul class="list clearfix">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<!--
第二种清除浮动的方法:
<div style="clear:both"></div>
-->
</ul>
</body>
</html>