CSS浮动知识的自我总结

CSS苦逼学习日记(4)

本日记讲述了我学习浮动的总结。

浮动的意思是 float;

特点:

1.一个不管是行内元素还是块级元素还是什么什么的,只要给它设置了浮动(float),就可以给它设置宽度和高度了。

2.浮动的元素会脱离标准流,不占有位置,相当于一个在路上排队的人上天了,在天上排队,在下面排队的人因为这个位置空缺,自然的可以向前进(浮动的元素可以设置高宽但是不占有位置),下面不是浮动的元素会占有浮动元素的位置,但是会被浮动的元素压在下面。

3.设置浮动的元素之间没有默认的内外边距了,会紧紧的贴在一起,若要分开,要单独的设置margin和padding值等。

4.因为浮动元素不占有位置,装浮动元素的父盒子若不设置高度和宽度的话,块级的父级盒子是没有高度的,行内块元素是没有高度和宽度的,这就会造成父元素塌陷(下面的盒子挤上来占了父盒子的位置),所以我们需要清除浮动。

5.浮动元素原本的作用是用来做文字环绕的,和浮动元素相同层级的文本不会占有浮动元素的位置,而围绕浮动元素铺平显示。



简单使用:

注意,若在父盒子内给一个子盒子设置了浮动,最好给全部的盒子都设置浮动,不然可能会出现某些问题。

1.float left;
这个是向左浮动的意思,

2.float right:
这个是右浮动的意思

左浮动和右浮动的范围都是在父盒子内部而言。



清除浮动的4种方式:

1.额外标签法:也是w3c(万维网)推荐的做法
案例代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    * {
        margin: 0px;
        padding: 0px;
    }
    .nav {
        width: 600px;
        margin: 0 auto;
        background-color: gray;
    }
    .bla {
        background-color: black;
        height: 200px;
    }
    .nav .son {
        float: left;
        width: 148px;
        margin-right: 2px;
        height: 200px;
        background-color: pink;
        list-style: none;
    }
    .nav #son1 {
        margin-right: 0px;
    }
    .nav .last {
        clear: both;
    }
</style>
<body>
    <ul class="nav">
        <li class="son"></li>
        <li class="son"></li>
        <li class="son"></li>
        <li class="son" id="son1"></li>
        <div class="last"></div>
    </ul>
    <div class="bla"></div>
</body>
</html>

此方法是在全部浮动元素的最后加一个额外的标签,本例加的是div的标签,然后给此标签 添加一个属性:

clear:both

2.使用 overflow:hiddem

案例代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .nav {
            width: 600px;
            background-color: gray;
            margin: 0 auto;
            list-style: none;
        }
        .nav .son {
            float: left;
            width: 148px;
            height: 200px;
            background-color: pink;
            margin-right: 2.6px;
        }
        .nav #son4 {
            margin-right: 0;
        }
        .last {
            background-color: black;
            height: 100px;
        }
        .nav {
            overflow: hidden;
        }
    </style>
</head>
<body>
    <ul class="nav">
        <li class="son">4</li>
        <li class="son">4</li>
        <li class="son">4</li>
        <li class="son" id="son4">4</li>
    </ul>
    <div class="last"></div>
</body>
</html>

此方法是给浮动元素的父元素增加了一个:

 overflow: hidden;

属性使得浮动被清除


3.单伪元素清除浮动:(工作常用,熟记):

.clearfix::after {
            content: "";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
        .clearfix{
            *zoom: 1;
        }

解释:在css代码中添加这两行代码,然后把 clearfix 添加在浮动元素的父盒子的类里面即可清除浮动,

必须的内容content:“”,就算什么也不加也需要写上这句话才能起作用(伪元素的特点)

visibility是可视化的意思,hidden就算隐藏,把可视化隐藏了,就看不见了

.*zoom 1 是为了照顾更低版本的浏览器而设置的


4.双伪元素清除浮动(也是工作中经常用的,须记住)

代码如下:

.clearfix::before,
.clearfix::after {
content: "";
display: table;
}

.clearfix::after {
clear: both;
}
.clearfix {
*zoom : 1;
}

同单伪元素一样,也是给浮动元素的父盒子添加一个 clearfix 的类,
代码续记住!!

到此为止。2020/12/10日记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值