首页 > 其他分享 >盒子的浮动

盒子的浮动

时间:2024-10-15 22:22:12浏览次数:3  
标签:浮动 盒子 background color 5px left

目录

一、浮动

1、脱离文档流

(1)盒子浮动后,将脱离其原本位置,文档流后面的元素会自动递补其位置。如下图:

(2)盒子浮动起来后,会生成一个与父盒等宽的浮层。

​编辑(3)左浮动:第一个设置左浮动的盒子浮至浮层,其它设置左浮动的盒子紧跟其后,从左到右排列,直到放不下才换行。

 (4)右浮动:第一个设置右浮动的盒子浮至浮层,其它设置左浮动的盒子紧跟其后,从右到左排列,直到放不下才换行。如下所示:

 (5)浮动盒排布规则:①向上向左或者向右排列②若空间无法容纳,则先向下移动,直到高度足够后向左向右③当前浮动盒的顶边,不得高于上一个浮动盒的顶边。

2、父辈的高度塌陷 

3、兄弟盒子的文字环绕

二、清除浮动

1、概念:为当前盒子设置一个clear属性,清除前面盒子浮动对它的影响。

2、其中left清除前面盒子左浮动的影响,right清除前面盒子右浮动的影响,both清除前面盒子的浮动影响(不管左浮动还是右浮动)

 3、作用:可以解决高度塌陷和文字环绕带来的问题。

 4、清除浮动示例:


一、浮动

1、脱离文档流

(1)盒子浮动后,将脱离其原本位置,文档流后面的元素会自动递补其位置。如下图:

盒子2浮动起来了,脱离了文档流,盒子3自动递补盒子2的位置。因为     的弊端,盒子3的字体还在盒子4那里。

换一个角度看,如下图效果:

代码如下:

<head>
    <title>Document</title>
    <style>
        /* 灰色盒子的大小 */
        article{
            width: 1920px;
            height: 500px;
            background-color:gray;
            margin-bottom: 5px;
        }
        /* div宽、高、背景颜色和元素下方的外边距大小 */
        div{
            width: 200px;
            height: 100px;
            background-color:pink;
            margin: 5px;
        
         }

         #div2{
            background-color: red;
            float: left;
         }
        </style>
</head>
<body>
    <article>
        <div>盒子1</div>
        <div id="div2">盒子2(浮动)</div>
        <div>盒子3</div>
        <div>盒子4</div>
        <div>盒子5</div>
    </article>
</body>

(2)盒子浮动起来后,会生成一个与父盒等宽的浮层。

(3)左浮动:第一个设置左浮动的盒子浮至浮层,其它设置左浮动的盒子紧跟其后,从左到右排列,直到放不下才换行。

盒子1没有设置浮动 , article的宽只有1400px,不够放置7个盒子,所以盒子8在下一行。

代码如下:

<head>
    <title>盒子的浮动</title>


        <style>
            /* 灰色盒子的大小 */
            article{
                width: 1400px;
                height: 500px;
                background-color:gray;
                margin-bottom: 5px;
            }
            /* div宽、高、背景颜色和元素下方的外边距大小 */
            div{
                width: 200px;
                height: 100px;
                background-color:pink;
                margin: 5px;
             }

             #div2{
                background-color: red;
                float: left;
             }
             #div3{
                background-color: green;
                float: left;
             }
             #div4{
                background-color: blue;
                float: left;
             }
             #div5{
                background-color: blue;
                float: left;
             }
             #div6{
                background-color: blue;
                float: left;
             }
             #div7{
                background-color: blue;
                float: left;
             }
             #div8{
                background-color: blue;
                float: left;
             }
             #div9{
                background-color: blue;
                float: left;
             }
        </style>
</head>
<body>
    <article>
        <div>盒子1</div>
        <div id="div2">盒子2(浮动)</div>
        <div id="div3">盒子3(浮动)</div>
        <div id="div4">盒子4(浮动)</div>
        <div id="div5">盒子5(浮动)</div>
        <div id="div6">盒子6(浮动)</div>
        <div id="div7">盒子7(浮动)</div>
        <div id="div8">盒子8(浮动)</div>
        <div id="div9">盒子9(浮动)</div>
    </article>
    
</body>

 (4)右浮动:第一个设置右浮动的盒子浮至浮层,其它设置左浮动的盒子紧跟其后,从右到左排列,直到放不下才换行。如下所示:

<head>
        <title>盒子的浮动</title>
        <style>
                /* 灰色盒子的大小 */
                article{
                    width: 1000px;
                    height: 500px;
                    background-color:gray;
                    margin-bottom: 5px;
                    
                }
                /* div宽、高、背景颜色和元素下方的外边距大小 */
                div{
                    width: 200px;
                    height: 100px;
                    background-color:pink;
                    margin: 5px;
                    float: right;
                 }
    
                 #div2{
                    background-color: red;
             
                 }
                 #div3{
                    background-color: green;
                 }
                 #div4{
                    background-color: blue;
                 }
                 #div5{
                    background-color: orange;
                 }
            </style>
    </head>
    <body>
        <article>
            <div>盒子1</div>
            <div id="div2">盒子2(浮动)</div>
            <div id="div3">盒子3(浮动)</div>
            <div id="div4">盒子4(浮动)</div>
            <div id="div5">盒子5(浮动)</div>
        </article>
        
    </body>

 (5)浮动盒排布规则:①向上向左或者向右排列②若空间无法容纳,则先向下移动,直到高度足够后向左向右③当前浮动盒的顶边,不得高于上一个浮动盒的顶边。

 如下:(没有浮动前的效果)

 排布结果:

2、父辈的高度塌陷 

当父盒由于各种原因没有设置高度,子盒的浮动会导致父盒的高度塌陷。父盒高度塌陷后,会影响父盒的兄弟盒子的布局。

如下:(当父盒·高度没有设置时,其高度由子盒撑开)

若子盒全部浮走,则高度塌陷为0。 

 

最简单的解决方案就是为父盒设置高度。如:

 

代码如下:

<head>
        <title>父辈的高度塌陷</title>
            <style>
                /* 灰色盒子的大小 */
                article{
                    width: 1400px;
                    /* 如果父盒由于各种原因没有设置高度,子盒的浮动会导致父盒的高度塌陷。父盒高度塌陷后,会影响父盒的兄弟盒子的布局 */
                    height: 500px; 
                    background-color:gray;
                    margin-bottom: 5px;
                }
    
                 #div1{
                    width: 200px;
                    height: 100px;
                    margin-bottom: 5px;
                    background-color: red;
                    float: left; 
                    border: rgb(167, 162, 162) 5px solid;
                 }
                 #div2{
                    background-color: green;
                    float: left; 
                    width: 200px;
                    height: 150px;
                    margin-bottom: 5px;
                    border:rgb(167, 162, 162) 5px solid;
                 }
                 #div3{
                    width: 200px;
                    height: 200px;
                    margin-bottom: 5px;
                    background-color: blue;
                    float: left; 
                    border:rgb(167, 162, 162) 5px solid;
                 }
                 #div4{
                    width: 200px;
                    height: 250px;
                    margin-bottom: 5px;
                    background-color: purple;
                     float: left; 
                    border:rgb(167, 162, 162) 5px solid;
                 }  
            </style>
    </head>
    <body>
        <article>
            <div id="div1">盒子1(浮动)</div>
            <div id="div2">盒子2(浮动)</div>
            <div id="div3">盒子3(浮动)</div>
            <div id="div4">盒子4(浮动)</div>
    
        </article>
    </body>

快复制代码动手试试吧 !!!!!!!

3、兄弟盒子的文字环绕

如下展示效果:

盒子浮动后,文档流后面的兄弟盒子会自动递补其位置。其中,文本会非常敏感,将自动环绕浮动盒。(浮动机制的初衷) 

二、清除浮动

1、概念:为当前盒子设置一个clear属性,清除前面盒子浮动对它的影响。

2、其中left清除前面盒子左浮动的影响,right清除前面盒子右浮动的影响,both清除前面盒子的浮动影响(不管左浮动还是右浮动)

 3、作用:可以解决高度塌陷和文字环绕带来的问题。

 4、清除浮动示例:

 以上是没有添加前的效果 ,可以复制上面父辈的高度塌陷的代码动手试试!

添加后的效果,清除前面盒子浮动对它的影响,撑开父盒的高度。代码如下:

<head>
        <title>父辈的高度塌陷</title>
            <style>
                /* 灰色盒子的大小 */
                article{
                    width: 1400px;
                    /* 如果父盒由于各种原因没有设置高度,子盒的浮动会导致父盒的高度塌陷。父盒高度塌陷后,会影响父盒的兄弟盒子的布局 */
                    /* height: 500px;  */
                    background-color:gray;
                    margin-bottom: 5px;
                }
    
                 #div1{
                    width: 200px;
                    height: 100px;
                    margin-bottom: 5px;
                    background-color: red;
                    float: left; 
                    border: rgb(167, 162, 162) 5px solid;
                 }
                 #div2{
                    background-color: green;
                    float: left; 
                    width: 200px;
                    height: 150px;
                    margin-bottom: 5px;
                    border:rgb(167, 162, 162) 5px solid;
                 }
                 #div3{
                    width: 200px;
                    height: 200px;
                    margin-bottom: 5px;
                    background-color: blue;
                    float: left; 
                    border:rgb(167, 162, 162) 5px solid;
                 }
                 #div4{
                    width: 200px;
                    height: 250px;
                    margin-bottom: 5px;
                    background-color: purple;
                     float: left; 
                    border:rgb(167, 162, 162) 5px solid;
                 } 
                 #div5{
                        width: 300px;
                        border: yellow solid 5px;
                 }
                 footer{
                    width: 1400px;
                    height: 100px; 
                    background-color: brown;
                 } 

            </style>
    </head>
    <body>
        <article>
            <div id="div1">盒子1(浮动)</div>
            <div id="div2">盒子2(浮动)</div>
            <div id="div3">盒子3(浮动)</div>
            <div id="div4">盒子4(浮动)</div>
            <!-- 这个div盒子没有实际显示效果,主要用于撑开父盒,避免高度塌陷影响其他的布局;其实,H5给我们提供了伪元素,我们可以利用伪元素代替我们下面这个盒子。前端开发的原则是:非必要不改变MTNL的结构,样式只通过CSS实现  -->
            <div style="clear:both;" id="div5"></div> 
    
        </article>
        <footer>
            我是网页的页脚
        </footer>
 </body>

 

 

标签:浮动,盒子,background,color,5px,left
From: https://blog.csdn.net/2401_87197766/article/details/142928618

相关文章

  • CSS盒子模型(更新ing)
    目录一、概念盒子的尺寸二、盒子模型的属性1、块级元素和内联(行内)元素2、常见的块级元素3、常见的内联(行内)元素一、介绍概念在CSS视角下,所有HTML元素可以看作盒子。所谓的盒子在HTML中就是一个盛装元素内容的容器。盒子由内容区(content),内边距(padding),边框(border),外......
  • Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
    什么是变量?在Java里,变量就是一个“可变的小盒子”,你可以随时改变它里面的数据。就像你有一个存钱罐,可以随时往里面放钱、取钱,今天装100块,明天变成200块,完全没问题。变量的定义:当你要定义一个变量时,你要告诉Java两个信息:这个“盒子”是用来装什么类型的数据(也就是数据类......
  • 盒子模型的属性
    盒子属性包括4部分,分别为内容区,边框,内边距,外边距。目录一.内容区(盒子中呈现的是实际内容,比如文字,图片等)二.边框 三.内边距四.外边距 一.内容区(盒子中呈现的是实际内容,比如文字,图片等)宽:width高:height块级元素可直接通过CSS设置宽高,但是行内元素默认情况下不可以。......
  • css盒子的定位(相对定位)
    如何给定位盒子    想给盒子定位,必须提供三个要素,锚点、方向和距离。而盒子的相对定位,就是以元素本身的位置作为锚点。盒子定位的属性名和属性值        position:relative    relative值代表的定位是以元素本身的位置作为锚点,元素本体的位置并......
  • HTML—盒子模型基础(概念和属性)简单易懂
    1、盒子模型的概念    W3C建议把网页上所有元素都放在一个个盒模型(boxmodel)中,通过CSS来控制这些盒子的显示属性,以及对这些盒子进行定位,完成整个页面的布局        在CSS视角下,所有HTML元素可以看作盒子、所谓的盒子在HTML中就是一个盛装元素内容的容器。 ......
  • CSS基础知识四(盒子绝对定位)
    目录1.绝对定位概念(absolute)2、绝对定位语法2.1代码添加 position:absolute;2.2创建一个HTNL结构2.3添加CSS属性2.3给div1加入绝对定位4.绝对定位练习4.1做出以下效果图1.绝对定位概念(absolute)    -当元素的position属性值设置为absolute时,就开启......
  • 盒子的相对定位
    想要了解盒子的相对定位,首先要清楚盒子的定位是怎样的:盒子的定位是使用position属性来实现不同的定位方式,其参数为static(静态定位)、relative(相对定位)、absolute(绝对定位)和fixed(固定定位);元素的位置通过left、top、right以及bottom属性进行规定。相对定位的概念......
  • Flexbox弹性盒子详解
    弹性盒子模型详解Flex弹性盒子模型详解Flex布局的基本概念Flex布局的常见属性及用法1.主轴方向2.主轴换行方式3.flex-flow(分开写更好)4.主轴对齐方式5.侧轴对齐方式5.1一行的情况5.2多行的情况6.伸缩性6.1flex-basis6.2flex-grow(伸)6.3flex-shrink(缩)7.flex复......
  • CSS盒子
    1.width,height宽度高度。<!DOCTYPEhtml><html> <head> <title>WidthHeight</title> <styletype="text/css"> body{ font-family:Arial,Verdana,sans-serif; color:#111111;} div{ width:400px;......
  • CSS弹性盒子(display:flex)使用技巧
    1.弹性盒模型简介FlexibleBox(伸缩盒模型,又称:弹性盒子)是W3C在2009年提出的一种新的盒子模型。通过display:flex;可以开启伸缩盒模型,将元素设置为伸缩容器,可以轻松的对元素进行布局。2.主轴与侧轴开启display:flex;的元素内的子元素会沿着主轴排列,主轴默认水平方向,......