• 范仁义css3课程---20、浮动


    范仁义css3课程---20、浮动

    一、总结

    一句话总结:

    浮动的话使用的是float属性,可以让元素浮动起来,常用取值为left(向左浮动)和right(向右浮动),浮动会使元素脱离文档流

    1、float属性有哪些取值?

    1、none,默认值,元素默认在文档流中排列
    2、1eft,元素会立即脱离文档流,向页面的左侧浮动
    3、right,元素会立即脱离文档流,向页面的右侧浮动

    2、浮动的特点?

    1、会脱离文档流,但是不会脱离文字流
    2、浮动元素的宽高是由内容撑开,不管是行级还是块级元素,如果设置了浮动属性,该元素就变成了具有inline-block属性的元素
    3、如果浮动元素上边是一个没有浮动的块元素,则浮动元素不会超过这个块元素(像一堵墙)
    4、多个元素设置浮动,宽度足够的话,会排在一行

    3、浮动的常见作用?

    用来脱离文档流,来做布局,比如双栏布局,比如多栏布局

    二、浮动

    博客对应课程的视频位置:20、浮动
    https://www.fanrenyi.com/video/10/57

    浮动的基本介绍
    浮动的话使用的是float属性,可以让元素浮动起来,常用取值为left(向左浮动)和right(向右浮动),浮动会使元素脱离文档流

    float属性有哪些取值
    1、none,默认值,元素默认在文档流中排列
    2、1eft,元素会立即脱离文档流,向页面的左侧浮动
    3、right,元素会立即脱离文档流,向页面的右侧浮动

    浮动的特点
    1、会脱离文档流,但是不会脱离文字流(脱离文档流就是不占着文档流的位置,不脱离文字流就是还占着文字的位置,这和float最初的目的相关,最初就是做图文混排的)
    2、浮动元素的宽高是由内容撑开,不管是行级还是块级元素,如果设置了浮动属性,该元素就变成了具有inline-block属性的元素(设置的宽高就可以生效了)
    3、如果浮动元素上边是一个没有浮动的块元素,则浮动元素不会超过这个块元素(像一堵墙)
    4、多个元素设置浮动,宽度足够的话,会排在一行

    5、文字环绕图片的效果


    三、浮动参考

    转自或参考:浮动 - 简书
    https://www.jianshu.com/p/8afce9e8e32d

    浮动在网页中的应用

    主要用于使得div脱离标准文档流,生成多列布局


    image.png

    float属性

    left
    元素向左浮动
    right
    元素向右浮动
    none
    默认值。元素不浮动,并会显示在其文本中出现的位置

    浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距(这里指的上一个元素不管它有没有设置浮动,都会紧挨着上一个元素)

    浮动的特性

    1.浮动元素支持所有的css样式
    2.内容撑开宽高
    3.多个元素设置浮动,宽度足够的话,会排在一行
    4.脱离文档流
    5.提升层级半级
    也就是说:一个元素设置了浮动属性后,下一个元素就会无视这个元素的存在,但是下一个元素中的文本内容依然会为这个元素让出位置使自身的文本内容环绕在设置浮动元素的周围

    注意:不管是行级还是块级元素,如果设置了浮动属性,该元素就变成了具有inline-block属性的元素

    浮动—都不浮动

    <div class="class1">我是块级元素1,没有设置浮动</div>
    
    <div class="class2">我是块级元素2,没有设置浮动</div>
    
    <div class="class3">我是块级元素3,没有设置浮动</div>
    
    
     .class1 {
                width: 200px;
                height: 100px;
                background: palegreen;
            }
    
            
            .class2 {
                width: 250px;
                height: 130px;
                background: gold;
            }
    
            
            .class3 {
                width: 300px;
                height: 180px;
                background: red;
            }
    
    image.png

    浮动—第一个div浮动

    <div class="class1">我是块级元素1,没有设置浮动</div>
    
    <div class="class2">我是块级元素2,没有设置浮动</div>
    
    <div class="class3">我是块级元素3,没有设置浮动</div>
    
    
         .class1 {
                width: 200px;
                height: 100px;
                background: palegreen;
                float: left
            }
    
            
            .class2 {
                width: 250px;
                height: 130px;
                background: gold;
            }
    
            
            .class3 {
                width: 300px;
                height: 180px;
                background: red;
            }
    

    1)没有设置浮动的元素会填充浮动元素留下来的空间

    2)浮动元素会和非浮动元素发生重叠,浮动元素会在图层的最上面

    3)使用浮动时,该元素会脱离文档流,后面的元素会无视这个元素,但文本依然会为这个浮动元素让出位置,并且元素中的文字内容会环绕在其周围


    image.png

    浮动—第二个div浮动

    <div class="class1">我是块级元素1,没有设置浮动</div>
    
    <div class="class2">我是块级元素2,没有设置浮动</div>
    
    <div class="class3">我是块级元素3,没有设置浮动</div>
    
    
         .class1 {
                width: 200px;
                height: 100px;
                background: palegreen;
            }
    
            
            .class2 {
                width: 250px;
                height: 130px;
                background: gold;
                float: left
            }
    
            
            .class3 {
                width: 300px;
                height: 180px;
                background: red;
            }
    

    浮动元素不会超越其前面的元素


    image.png

    浮动—3个div都浮动

    <div class="class1">我是块级元素1,没有设置浮动</div>
    
    <div class="class2">我是块级元素2,没有设置浮动</div>
    
    <div class="class3">我是块级元素3,没有设置浮动</div>
    
    
       .class1 {
                width: 200px;
                height: 100px;
                background: palegreen;
            }
    
            
            .class2 {
                width: 250px;
                height: 130px;
                background: gold;
                float: left
            }
    
            
            .class3 {
                width: 300px;
                height: 180px;
                background: red;
            }
    

    浏览器宽度足够时,并排排列


    image.png

    浏览器宽度不足以容纳最后一个div时,最后一个div掉下来,并且顶部不会超过倒数第二个div的底部。


    image.png

    浮动—父子关系

    <div id="wrap2">
        <div class="class1"></div>
        
        <div class="class2"></div>
        
        <div class="class3"></div>
        
        <div class="class4"></div>
        
    </div>
    
         #wrap2 {
                width: 550px;
                height: 900px;
                border: 3px solid red;
            }
    
            
            .class1 {
                width: 200px;
                height: 400px;
                background: blue;
                float: left;
            }
    
            
            .class2 {
                width: 200px;
                height: 300px;
                background: yellow;
                float: left;
            }
    
            
            .class3 {
                width: 200px;
                height: 300px;
                background: fuchsia;
                float: left;
            }
    
            
            .class4 {
                width: 200px;
                height: 200px;
                background: chartreuse;
                float: left;
            }
    

    1)浮动元素不会在其浮动方向上溢出父级的包含块
    也就是说元素左浮动,其左外边距不会超过父级的左内边距,元素右浮动,其右外边距不会超过父级的右内边距
    2)浮动元素的位置受到同级同向浮动元素的影响
    也就是说同一父级中有多个浮动元素,后一个元素的位置会受到前一个浮动元素位置的影响,他们不会相互遮挡,后一个浮动元素会紧挨着前一个浮动元素的左外边距进行定位,如果当前空间不足,则会换行,否则会放置在前一个浮动元素的下面

    image.png

    浮动影响父层盒子高度

    父元素的高度靠子元素撑开,子元素全部浮动后,均脱离文档流,父元素高度塌陷

    <div id="wrap2">
        <div class="class1"></div>
        
        <div class="class2"></div>
        
        <div class="class3"></div>
        
        <div class="class4"></div>
        
    </div>
    
         #wrap2 {
                width: 550px;
                border: 3px solid red;
            }
    
            
            .class1 {
                width: 200px;
                height: 400px;
                background: blue;
                float: left;
            }
    
            
            .class2 {
                width: 200px;
                height: 300px;
                background: yellow;
                float: left;
            }
    
            
            .class3 {
                width: 200px;
                height: 300px;
                background: fuchsia;
                float: left;
            }
    
            
            .class4 {
                width: 200px;
                height: 200px;
                background: chartreuse;
                float: left;
            }
    
    image.png

    溢出处理

    overflow属性

    visible
    默认值。内容不会被修剪,会呈现在盒子之外
    hidden
    内容会被修剪,并且其余内容是不可见的
    scroll
    内容会被修剪,但是浏览器会显示滚动条以便查看其余内容
    auto
    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容

    overflow属性的妙用

    使用overflow扩展盒子高度,overflow属性会触发浏览器重新计算父元素盒子高度

    <div id="wrap2">
        <div class="class1"></div>
        
        <div class="class2"></div>
        
        <div class="class3"></div>
        
        <div class="class4"></div>
        
    </div>
    
         #wrap2 {
                width: 550px;
                border: 3px solid red;
            overflow:hidden;
            }
    
            
            .class1 {
                width: 200px;
                height: 400px;
                background: blue;
                float: left;
            }
    
            
            .class2 {
                width: 200px;
                height: 300px;
                background: yellow;
                float: left;
            }
    
            
            .class3 {
                width: 200px;
                height: 300px;
                background: fuchsia;
                float: left;
            }
    
            
            .class4 {
                width: 200px;
                height: 200px;
                background: chartreuse;
                float: left;
            }
    
    image.png

    清除浮动

    clear属性

    left
    在左侧不允许浮动元素
    right
    在右侧不允许浮动元素
    both
    在左、右两侧不允许浮动元素
    none
    默认值。允许浮动元素出现在两侧

    清除两测浮动

    清除两侧浮动,有扩展父级盒子高度的作用

    <div id="wrap2">
        <div class="class1"></div>
        
        <div class="class2"></div>
        
        <div class="class3"></div>
        
        <div class="class4"></div>
         <p class="txt">我是一段文本我是一段文本我是一段文本我是一段文本</p>
    </div>
    
       #wrap2 {
                width: 550px;
                border: 3px solid red;
            }
    
            
            .class1 {
                width: 200px;
                height: 400px;
                background: blue;
                float: left;
            }
    
            
            .class2 {
                width: 200px;
                height: 300px;
                background: yellow;
                float: left;
            }
    
            
            .class3 {
                width: 200px;
                height: 300px;
                background: fuchsia;
                float: left;
            }
    
            
            .class4 {
                width: 200px;
                height: 200px;
                background: chartreuse;
                float: left;
            }
    
            
            .txt {
                clear: both
            }
    

    清除两侧浮动前

    image.png

    清除两侧浮动后,有扩展父级盒子高度的作用

    image.png
     
     

    四、课程代码

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>浮动</title>
     6     <style>
     7         .box1{
     8             width: 100px;
     9             height: 100px;
    10             background-color: darkseagreen;
    11             float: left;
    12         }
    13         .box2{
    14             width: 150px;
    15             height: 150px;
    16             background-color: orange;
    17             float: right;
    18         }
    19         .box3{
    20             width: 200px;
    21             height: 200px;
    22             background-color: red;
    23             float: left;
    24         }
    25         .span1{
    26             width: 100px;
    27             height: 100px;
    28             background-color: aquamarine;
    29             float: right;
    30         }
    31     </style>
    32 </head>
    33 <body>
    34 <!--
    35 特点:
    36 1、会脱离文档流,
    37 但是不会脱离文字流(脱离文档流就是不占着文档流的位置,
    38 不脱离文字流就是还占着文字的位置,
    39 这和float最初的目的相关,最初就是做图文混排的)
    40 2、浮动元素的宽高是由内容撑开,不管是行级还是块级元素,
    41 如果设置了浮动属性,该元素就变成了具有inline-block属性的元素
    42 (设置的宽高就可以生效了)
    43 3、如果浮动元素上边是一个没有浮动的块元素,
    44 则浮动元素不会超过这个块元素(像一堵墙)
    45 4、多个元素设置浮动,宽度足够的话,会排在一行
    46 5、文字环绕图片的效果
    47 
    48 -->
    49 <div class="box1">
    50 box1
    51 </div>
    52 <div class="box2">
    53 box2
    54 </div>
    55 <div class="box3">
    56 box3
    57 </div>
    58 <span class="span1">
    59 span1
    60 </span>
    61 </body>
    62 </html>
     
  • 相关阅读:
    在一天的24小时之中,时钟的时针、分针和秒针完整重合在一路的时辰有几回?都分辨是什么时光?你如何算出来的?
    12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
    Bootstrap4默认样式不对胃口?教你使用NPM+Webpack+SASS来定制
    Java 内存模型和 JVM 内存结构真不是一回事
    还在为垂直居中苦恼?CSS 布局利器 flexbox 轻轻松松帮你搞定
    这 3 个 Set 集合的实现有点简单,那来做个总结吧
    TreeMap 还能排序?分析下源码就明白了
    红黑树这个数据结构,让你又爱又恨?看了这篇,妥妥的征服它
    模拟实现 Tomcat 的核心模块:NIO,HTTP,容器和集群
    「福利」Java Swing 编写的可视化算法工程,包含树、图和排序
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12169504.html
Copyright © 2020-2023  润新知