当前位置:   article > 正文

CSS - 浮动、定位

CSS - 浮动、定位

浮动

CSS浮动(Float)是一种布局技术,用于控制元素在页面中的位置。通过将元素浮动到其容器的左侧或右侧,可以使其他元素环绕在其周围。

相关属性:

  • float:用于设置元素的浮动方向。可以设置为left(左浮动)或right(右浮动)。

  • clear:用于控制元素周围的浮动元素对其的影响。可以设置为left(清除左浮动)、right(清除右浮动)、both(清除左右浮动)或none(不清除浮动)。

  • clearfix:当父元素包含浮动元素时,可以使用clearfix技术来清除浮动。这可以通过在父元素上应用clearfix类来实现,例如:

.clearfix::after {
    content: "";
    display: table;
    clear: both;
}
  • 1
  • 2
  • 3
  • 4
  • 5

注意:

  • 浮动元素会脱离正常的文档流,其他元素会环绕在其周围。
  • 浮动元素的宽度默认会根据其内容自动调整,除非显式设置了宽度。
  • 浮动元素会影响其容器的高度计算,容器可能会塌陷(高度为0)。
  • 浮动元素之间可能会发生重叠,需要适当处理。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动学习</title>

    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: red;
            float: left;
        }
    </style>


</head>

<body>

    <div></div>
    <div></div>
    <div></div>
</body>

</html>
  • 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

在这里插入图片描述

既然我们可以定义浮动位置,那么我们也可以清除浮动
清除浮动是为了解决浮动元素对其容器造成的高度塌陷和布局问题。以下是一些常用的清除浮动的方法:

  • 使用clear属性:在浮动元素的容器中添加一个空的块级元素,并为其应用clear: both;样式。这会使该元素出现在浮动元素的下方,从而清除浮动。例如:
<div class="clearfix">
    <div class="float-left">浮动元素1</div>
    <div class="float-left">浮动元素2</div>
    <div class="clear"></div>
</div>
  • 1
  • 2
  • 3
  • 4
  • 5
.clearfix::after {
    content: "";
    display: table;
    clear: both;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 使用overflow属性:在浮动元素的容器上应用overflow: hidden;或overflow: auto;样式。这会创建一个新的块级格式化上下文(BFC),从而清除浮动。例如:
.container {
    overflow: hidden;
}
  • 1
  • 2
  • 3
  • 使用伪元素:在浮动元素的容器中使用伪元素来清除浮动。这是一种常见的clearfix技术。例如:
.clearfix::after {
    content: "";
    display: table;
    clear: both;
}
  • 1
  • 2
  • 3
  • 4
  • 5

示例

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除浮动</title>

    <style>
        .box {
            background-color: violet;
            /* overflow清除浮动 */
            overflow: hidden;
        }
        /* 伪元素清除浮动     */
        /* .box::after {
            clear: both;
            content: '';
            display: block;
            visibility: hidden;
        } */
        
        .box>div {
            width: 200px;
            height: 100px;
            float: left;
            background-color: black;
        }
    </style>

</head>

<body>


    <div class="box">
        <div></div>
        <!-- <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div> -->
    </div>


    <!-- <div style="width: 1000px;height: 100px;background-color: blue;"></div> -->
</body>

</html>
  • 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
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

在这里插入图片描述

定位

CSS定位是一种用于控制元素在页面中精确位置的技术。CSS提供了多种定位属性,包括相对定位(relative)、绝对定位(absolute)、固定定位(fixed)和粘性定位(sticky)

  • 相对定位(relative):通过设置position: relative;可以将元素相对于其正常位置进行偏移。使用top、right、bottom和left属性可以控制元素相对于其原始位置的偏移量。

  • 绝对定位(absolute):通过设置position: absolute;可以将元素相对于其最近的已定位祖先元素进行定位。如果没有已定位的祖先元素,则相对于文档的初始包含块进行定位。使用top、right、bottom和left属性可以控制元素相对于其定位参考点的偏移量。

  • 固定定位(fixed):通过设置position: fixed;可以将元素相对于视口进行定位,即无论页面滚动与否,元素都会保持在固定位置。使用top、right、bottom和left属性可以控制元素相对于视口的偏移量。

  • 粘性定位(sticky):通过设置position: sticky;可以将元素在滚动到特定位置时固定在屏幕上。使用top、right、bottom和left属性可以控制元素相对于其父元素或视口的偏移量。

<!-- <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>绝对定位</title>
    <style>
        /* 在没有父元素或者父元素没有定位的情况下 以浏览器为标准定位 
            关键字:absolute 
        */
        
        * {
            margin: 0;
            padding: 0;
        }
        
        .father {
            width: 500px;
            height: 500px;
            background-color: pink;
            position: absolute;
        }
        
        .son {
            position: absolute;
            width: 100px;
            top: 100px;
            right: 10px;
            height: 100px;
            background-color: blue;
        }
    </style>
</head>

<body>

    <div class="father">
        <div class="son">


        </div>

    </div>

</body>

</html> -->

<!DOCTYPE html>
<html>
<head>
    <title>CSS定位示例</title>
    <style>
        .relative {
            position: relative;
            top: 20px;
            left: 20px;
            background-color: yellow;
        }

        .absolute {
            position: absolute;
            top: 50px;
            right: 50px;
            background-color: red;
        }

        .fixed {
            position: fixed;
            bottom: 20px;
            right: 20px;
            background-color: blue;
        }

        .sticky {
            position: sticky;
            top: 100px;
            background-color: green;
        }

        .container {
            height: 2000px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="relative">相对定位</div>
        <div class="absolute">绝对定位</div>
        <div class="fixed">固定定位</div>
        <div class="sticky">粘性定位</div>
    </div>
</body>
</html>
  • 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
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/393103
推荐阅读
相关标签
  

闽ICP备14008679号