CSS浮动笔记

1.浮动流排版方式

  • 浮动流是一种"半脱离标准流"的排版方式
   1.什么是浮动元素的脱标?
   脱标: 脱离标准流
   当某一个元素浮动之后, 那么这个元素看上去就像被从标准流中删除了一样, 这个就是浮动元素的脱标

   2.浮动元素脱标之后会有什么影响?
   如果前面一个元素浮动了, 而后面一个元素没有浮动 , 那么这个时候前面一个元就会盖住后面一个元素

例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
    <style>
        .box1{
             float: left;
             width: 100px;
             height: 100px;
             background-color: red;
         }
        .box2{
            width: 150px;
            height: 150px;
            background-color: blue;
        }
    </style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>

从结果中可以看到box1左浮动,而box2没有浮动,box1先脱离了标准流,box2顶到了box1的位置,然后box1浮动到最左边同时也覆盖到了box2上面。

 

  • 浮动流只有一种排版方式, 就是水平排版. 它只能设置某个元素左对齐或者右对齐(float的常用取值none、left、right) 

注意点:

  • 浮动流中没有居中对齐。
  • 在浮动流中不可以使用margin: 0 auto;

2.浮动元素的排序规则

  • 相同方向上的浮动元素, 先浮动的元素会显示在前面, 后浮动的元素会显示在后面
  • ​​​​不同方向上的浮动元素, 左浮动会找左浮动, 右浮动会找右浮动(然后再遵循上面那条原则)
  • 浮动元素浮动之后的位置, 由浮动元素浮动之前在标准流中的位置来确定

关于第三点规则,先上代码看结果在分析

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动元素排序规则</title>
    <style>
        .box1{
            float: left;
            width: 50px;
            height: 50px;
            background-color: red;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
        .box3{
            float: left;
            width: 150px;
            height: 150px;
            background-color: yellow;
        }
        .box4{
            float: left;
            width: 200px;
            height: 200px;
            background-color: tomato;
        }
    </style>
</head>
<body>
<div class="box1">1</div>
<div class="box2">2</div>
<div class="box3">3</div>
<div class="box4">4</div>
</body>
</html>

分析:1.box1原本应该在标准流中的第一行,box1左浮,脱离标准流浮动到第一行,没有问题

           2.box1脱离了标准流,box2顶上了box1的位置,box2没有浮动,所以box1盖住了box2

           3.box2现在在标准流的第一行,box3就顶到了第二行,box3再左浮动,显示在第二行的左边

           4.box3浮动脱离标准流,box4又顶到了第二行,然后再左浮动,并且符合第一条规则,box4在box3的左边

3.浮动元素贴靠现象

  • 如果父元素的宽度能够显示所有浮动元素, 那么浮动的元素会并排显示
    
  • 如果父元素的宽度不能显示所有浮动元素, 那么会从最后一个元开始往前贴靠  
  • 如果贴靠了前面所有浮动元素之后都不能显示, 最终会贴靠到父元素的左边或者右边,即使父元素宽度不够了,也不会再改变
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动元素贴靠现象</title>
    <style>
        .father{
            width: 400px;
            height: 200px;
            border: 1px solid #000;
        }
        .box1{
            float: left;
            width: 50px;
            height: 100px;
            background-color: red;
        }
        .box2{
            float: left;
            width: 50px;
            height: 40px;
            background-color: green;
        }
        .box3{
            float: left;
            width: 250px;
            height: 60px;
            background-color: blue;
        }
    </style>
</head>
<body>

<div class="father">
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
</div>
</body>
</html>

不断缩小father的width,根据规则会得到以下结果

 

4.浮动元素字围现象 

  • 浮动元素不会挡住没有浮动元素中的文字, 没有浮动的文字会自动给浮动的元素让位置,这个就是浮动元素字围现象
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动元素字围现象</title>
    <style>
        p{
            width: 300px;
            height: 300px;
            background-color: yellow;
        }
        img{
            float: left;
        }
    </style>
</head>
<body>
<img src="images/animal2.png" alt="">
<p>
  文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字 文字文字文字
</p>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值