zoukankan      html  css  js  c++  java
  • CSS:浮动(左浮动、右浮动)

    1、标准流(普通流/文档流)

    标准流就是标签按照规定好的默认方式排列

    (1)块级元素会独占一行,按照从上到下的方式排列

    (2)行内元素会按照顺序,从左到右的顺序进行排列,遇到父元素则自动换行

    (3)纵向排列标准流,横向排列用浮动

    2、浮动的简单应用

    (1)让多个块级元素水平排列在一行(这里将行内元素转换为了块级元素)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                    display:inline-block;
                }
                
                .myclass2{
                    background-color:black;
                      100px;
                    height: 200px;
                    display:inline-block;
                }
                 .myclass3{
                    background-color: red;
                      100px;
                    height: 200px;
                    display:inline-block;
                   }
          
            </style>
        </head>
        <body>
            <span class="myclass1">1</span>
            <span class="myclass2">2</span>
            <span class="myclass3">3</span>
        </body>
    </html>

     可以看出,块元素在显示的时候,他们之间会有空隙。

    (2)添加浮动

            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                    display:inline-block;
                    float: left;
                }
                
                .myclass2{
                    background-color:black;
                      100px;
                    height: 200px;
                    display:inline-block;
                     float: left;
                }
                 .myclass3{
                    background-color: red;
                      100px;
                    height: 200px;
                    display:inline-block;
                     float: left;
                   }
          
            </style>

     在标准流中不能实现的布局效果,在浮动中就可以很容易地完成,浮动可以改变标签的默认的排列方式。

    3、浮动(左浮动与右浮动)

    (1)左浮动

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                    display:inline-block;
                    float: left;
                }
                
                .myclass2{
                    background-color:black;
                      100px;
                    height: 200px;
                    display:inline-block;
                     float: left;
                }
              
          
            </style>
        </head>
        <body>
        <div class="myclass1"></div>
        <div class="myclass2"></div>
        </body>
    </html>

     两个块元素本来是要每个div独占一行的,但是在添加了浮动以后就会合并到一行显示,因为设置的是左浮动,他们两个都是靠左排列的。

    (2)一个左,一个右

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                    display:inline-block;
                    float: left;
                }
                
                .myclass2{
                    background-color:black;
                      100px;
                    height: 200px;
                    display:inline-block;
                     float: right;
                }
              
          
            </style>
        </head>
        <body>
        <div class="myclass1"></div>
        <div class="myclass2"></div>
        </body>
    </html>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                    display:inline-block;
                    float: left;
                }
                
                .myclass2{
                    background-color:black;
                      100px;
                    height: 200px;
                    display:inline-block;
                     float: right;
                }
              
          
            </style>
        </head>
        <body>
        <div class="myclass1"></div>
        <div class="myclass2"></div>
        </body>
    </html>

    4、浮动的特性

    (1)浮动元素会脱离标准流(不再保留原来的位置,也就是说其它元素可以占用浮动元素的位置)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                 .myclass1{
                    background-color: red;
                     100px;
                    height: 200px;
                  
                    float: left;
                }
                
                .myclass2{
                    background-color:black;
                     200px;
                    height: 300px;
                 
                }
              
          
            </style>
        </head>
        <body>
        <div class="myclass1"></div>
        <div class="myclass2"></div>
        </body>
    </html>

    在对红色元素添加了浮动以后,他的位置是可以被其他的元素所占用的。

    (2)浮动元素会在一行内显示并且元素顶部对齐

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                .myclass1 {
                    background-color: red;
                     100px;
                    height: 200px;
                    float: left;
                }
                
                .myclass2 {
                    float: left;
                    background-color: black;
                     200px;
                    height: 200px;
                }
            </style>
        </head>
    
        <body>
            <div class="myclass1"></div>
            <div class="myclass2"></div>
        </body>
    
    </html>

    如果是标准流的话,他们是上下显示的,即一个div元素独占一行

    (3)会具有行内块元素的特征

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                .myclass1 {
                    background-color: red;
                     100px;
                    height: 200px;
                    float: left;
                }
                
                .myclass2 {
                    float: left;
                    background-color: black;
                     200px;
                    height: 200px;
                }
            </style>
        </head>
    
        <body>
            <span class="myclass1"></span>
            <span class="myclass2"></span>
        </body>
    
    </html>

     一般情况下,行内元素转换为块元素需要添加属性,但是,在添加了浮动以后就可以自动转换为块元素。

    4、浮动元素和标准父级搭配使用

    一般情况下,先用标准流的父元素排列上下位置,之后内部子元素采取浮动的策略排列左右位置

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="utf-8" />
            <title>test</title>
            <style type="text/css">
                .bigbox {
                    background-color: #ffffcc;
                     1100px;
                    height: 400px;
                    margin: 0 auto;
                }
                .left{
                    height: 400px;
                     300px;
                    float: left;
                    background-color: #fffcf5;
                }
                 .right{
                    height: 400px;
                     600px;
                    float: right;
                    background-color: #e3dc89;
                }
            </style>
        </head>
    
        <body>
            <div class="bigbox">
                <div class="left"></div>
                <div class="right"></div>
            </div>
        </body>
    
    </html>

     这里面一共有三个盒子,其中父盒子包含两个子盒子。没有父元素的话,盒子是直接靠近浏览器的边缘排列的,但是有了父盒子以后就只能在父盒子里面,也就是说父盒子能够限制子盒子的位置。

  • 相关阅读:
    [置顶] windows player,wzplayerV2 for windows
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    ffmpeg for ios 交叉编译 (支持i686 armv7 armv7s) 包含lame支持
    编译cegcc 0.59.1
    wzplayer 近期将会支持BlackBerry和WinPhone8
    wzplayerEx for android(真正硬解接口,支持加密的 player)
    windows player,wzplayerV2 for windows(20140416)更新
    编译cegcc 0.59.1
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13166387.html
Copyright © 2011-2022 走看看