0%

div横向排列及清除元素浮动影响

前言

​ | 给我的 城墙墨の小破站 写博主部分横向排列的时候,突然忘了怎么清除元素浮动影响,果然不经常使用了就忘了😕,决定再看看教学视频整理一下,备忘 🙃。

定义float

float元素可以定义元素浮动显示

1
float: left | right | none

利用浮动,使元素横向排列

设置4个横向排列的item,代码如下:

1
2
3
4
5
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
1
2
3
4
5
.item{
width: 125px;
height: 165px;
float: left;
}

利用float就能使这几个div横着排列

清除元素浮动影响

由于元素浮动后不占据空间,在.item下面在设置div块时就会被浮动的.item所遮挡,所以这个时候就需要清除元素浮动影响,有两种方法

1.overflow:auto;

在浮动的元素的外面套个div盒子,例如如下在.item外面套个#category,css设置为overflow:auto

1
2
3
4
5
6
7
<div id="category">
<div class="item first"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item last"></div>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#category {
overflow: auto;
background-color:brown;
margin: auto;
}

#category .item{
width: 125px;
height: 165px;
padding-left: 25px;
padding-right: 25px;
padding-bottom: 25px;
border-right: 1px dashed black;
float: left;
}

2.clear清除元素浮动影响

1
clear: left | right | both

利用clear创建对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>对话框</title>
<style type="text/css">
ul {
width: 300px;
height: 500px;
border-width:2px;
border-color: black;
}

li {
clear: both;
background-color: aquamarine;
}
.a {
float:left;
}
.b {
float: right;
}
</style>
</head>
<body>
<ul>
<li class="a">喵喵喵</li>
<li class="b">汪汪汪</li>
<li class="a">🤨</li>
<li class="b">🙃</li>
<li class="a">emm</li>
<li class="b">。。。</li>
<li class="a">我喵星人宇宙无敌超级美</li>
<li class="b">呵呵呵!!!</li>
</ul>
</body>
</html>