Bootstrap

5.CSS学习(浮动)

浮动(float)

        是一种传统的网页布局方式,通过浮动,可以使元素脱离文档流的控制,使其横向排列。

其编写在CSS样式中。

float:none(默认值)        元素不浮动。

float:left                        设置的元素在其包含块内左侧浮动。

float:right                 设置的元素在其包含块内右侧浮动。

 1.设置浮动之后,元素会脱离文档流中占用的内容,其后的元素自动补位。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <style>
        /*  box4是box1,box2,box3的包含块  */
        .box4{
            height: 600px;
            width: 600px;
            margin: auto;
            padding: 10px;
            border: 10px solid orange;
            background-color:deepskyblue;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            float: left;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
        }        
        .box3{
            width: 200px;
            height: 200px;
            background-color: blue;
        }
    </style>
</head>
<body>
    <div class="box4">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>
</html>

因为给box1设置左浮动之后,其脱离了文档流的限制,不再占用文档流中的内容,box2和box3自动补位,box1盖住了box2。

2.设置浮动以后,元素会向包含块内的左侧或右侧移动(向左向右取决于参数值) 

 box1右浮动

box1,box2,box3都左浮动

通过浮动可以让垂直排列变成水平排列。 

3.如果一行之内无法容纳所有的浮动元素,则后边的元素会自动换到下一行。    

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <style>
        
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            float: right;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
            float: right;
        }        
        .box3{
            width: 200px;
            height: 200px;
            background-color: blue;
            float: right;
        }
        .box5{
            width: 500px;
            height: 200px;
            background-color: purple;
            float: right;
        }
        /* 包含块设置 */
        .box4{
            height: 600px;
            width: 600px;
            margin: auto;
            padding: 10px;
            border: 10px solid orange;
            background-color:deepskyblue;
        }
    </style>
</head>
<body>
    <div class="box4">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <div class="box5"></div>    
    </div>


</body>
</html>

 4.浮动元素不会超过它上边浮动的兄弟元素,最多一边齐。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <style>
        
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            float: left;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
            float: left;
        }        
        .box3{
            width: 500px;
            height: 200px;
            background-color: blue;
            float: left;
        }
        .box5{
            width: 200px;
            height: 200px;
            background-color: purple;
            float: right;
        }
        /* 包含块设置 */
        .box4{
            height:800px;
            width: 800px;
            margin: auto;
            padding: 10px;
            border: 10px solid orange;
            background-color:deepskyblue;
            text-align: center;
            line-height: 200px;
            font-size: 40px;
        }
    </style>
</head>
<body>
    <div class="box4">
        <div class="box1">box1</div>
        <div class="box2">box2</div>
        <div class="box3">box3</div>
        <div class="box5">box5</div>    
    </div>


</body>
</html>

box5浮动不能超过之前浮动的兄弟元素,所以最多到box3的位置,不能超过box5 

5.浮动元素不会盖住文字,文字会环绕在浮动元素周围。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <!-- 
        浮动(float):
            是一种传统的网页布局方式,通过浮动可以使元素脱离文档流的控制,而横向排列。
            前面学的盒子模型都是纵向排列。

            可选值:
                none(默认值)    元素不浮动
                left            元素向左浮动

            1.设置浮动以后,元素会脱离文档流中占用的内容,其后的元素会自动补位。
            2.设置浮动后,元素会向包含块内的内容区左侧或右侧移动(向左向右取决于参数值)
            3.如果一行之内无法容纳所有的浮动元素,则后边的元素会自动换到下一行。
            4.浮动元素不会超过它上边浮动的兄弟元素,最多一边齐。
            5.浮动元素不会盖住文字,文字会环绕在浮动元素周围。    
    -->
    <style>

        .box2{
            width: 200px;
            height: 200px;
            background-color: red;
            float: left;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: green;
            float: left;
        }
        .box4{
            width: 500px;
            height: 200px;
            background-color: blue;
            float:left;            
        }
/* 这里的box5没有在第一行显示,而是与box4对齐右浮动,首先因为浮动元素box4超出了包含块的宽度,所以自动换行到下一行显示,之后box5浮动时,选择与box4对齐   */
        .box5{
            width: 200px;
            height: 200px;
            background-color:purple;
            float: right;            
        }

        .box1{
            width: 800px;
            height: 800px;
            background-color: deepskyblue;
            padding: 10px;
            border: 5px orange solid;
            margin: auto;
            font-size: 40px;
            line-height: 200px;
            text-align: center;
        }
        /* 5.浮动元素不会盖住文字,文字会环绕在浮动元素周围。    */
        .box6{
            width: 200px;
            height: 200px;
            background-color: yellow;
            font: 40px/200px microsoft Yahei serif ;
            text-align: center;
            float: left;

        }
        p{
            background-color: pink;
            font-size: 20px;
        }
    </style>
</head>
<body>
    <div class="box6">box6</div>
    <p> 
        燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:如今(现在 )又到了哪里呢?
        我不知道他们给了我多少日子,但我的手确乎是渐渐空虚了。在默默里算着,八千多日子已经从我手中溜去,像针尖上一滴水滴在大海里,我的日子滴在时间的流里,没有声音,也没有影子。我不禁头涔涔而泪潸潸了。
        去的尽管去了,来的尽管来着,去来的中间,又怎样地匆匆呢?早上我起来的时候,小屋里射进两三方斜斜的太阳。太阳他有脚啊,轻轻悄悄地挪移了;我也茫茫然跟着旋转。于是——洗手的时候,日子从水盆里过去;吃饭的时候,日子从饭碗里过去;默默时,便从凝然的双眼前过去。我觉察他去的匆匆了,伸出手遮挽时,他又从遮挽着的手边过去,天黑时,我躺在床上,他便伶伶俐俐地从我身上跨过,从我脚边飞去了。等我睁开眼和太阳再见,这算又溜走了一日。我掩着面叹息。但是新来的日子的影儿又开始在叹息里闪过了。
        在逃去如飞的日子里,在千门万户的世界里的我能做些什么呢?只有徘徊罢了,只有匆匆罢了;在八千多日的匆匆里,除徘徊外,又剩些什么呢?过去的日子如轻烟,被微风吹散了,如薄雾,被初阳蒸融了;我留着些什么痕迹呢?我何曾留着像游丝样的痕迹呢?我赤裸裸来到这世界,转眼间也将赤裸裸的回去罢?但不能平的,为什么偏要白白走这一遭啊?
        你聪明的,告诉我,我们的日子为什么一去不复返呢?        
    </p>
    <hr>
    <div class="box1">
        <div class="box2">box2</div>
        <div class="box3">box3</div>
        <div class="box4">box4</div>
        <div class="box5">box5</div>
    </div>
</body>
</html>

;