前端学习笔记浮动布局

有这样一个问题,怎么让两个块并排显示,块用div表示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#div1{
 
    background: black;
    width:100px;
    height:200px;
 
}
 
#div2
{
 
    background: red;
    width:100px;
    height:200px;
 
 
}
</style>
 
<div id ="div1"></div>
<div id="div2"></div>

 效果是这样的:

 

由于div是block元素,不管你设置div是多宽都独占一行。所以按照上面的代码来写的话,div1和div2是并列显示的。我们得想想办法,后来查找资料,发现可以用float来实现,我们可以先让div1向左浮动,带入如下:

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>
<head>
    <title>test </title>
    <meta charset="utf-8">
</head>
<body>
 
<style>
 
 
 
#div1{
 
    background: black;
    width:100px;
    height:200px;
    float:left;
}
 
#div2
{
 
    background: red;
    width:100px;
    height:200px;
 
 
}
</style>
 
<div id ="div1"></div>
<div id="div2"></div>
 
 
 
</body>
</html>

 效果如下:

咦?红色的块哪里去了呢?是因为给黑色的块设置了float属性,那么这个黑色的div就漂浮了起来,原来文档中所有的元素都处于同一个平面的,黑色的div设置了float属性之后就漂浮到上面的那个平面上去了,所以下面平面就留出了一块空地方,下面平面中的红色的块就填充了原来黑色块的位置了,所以黑块就把红块覆盖了。

那怎么让红色的块也显示出来呢?很简单让红色的块也向左浮动,float:left

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>
<head>
    <title>test </title>
    <meta charset="utf-8">
</head>
<body>
 
<style>
 
 
 
#div1{
 
    background: black;
    width:100px;
    height:200px;
    float:left;
}
 
#div2
{
 
    background: red;
    width:100px;
    height:200px;
    float:left;
 
}
</style>
 
<div id ="div1"></div>
<div id="div2"></div>
 
 
 
</body>
</html>

 效果如下:

怎么解释这个过程?还是一样的道理,黑色的块已经是上面那个平面的元素了,而红色的块原本是处于下面那个平面的,float之后就跑到上面这个平面了,那为什么这两个块就非要挨着呢?前面不是说div是块状元素吗?难道块状元素float之后就不是块状元素,不需要独占一行了吗?这是个疑问。

 

posted @   eatwhat  阅读(348)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示