zoukankan      html  css  js  c++  java
  • CSS浮动详解

    浮动 float

    网页布局的实质,通过css 来摆放盒子,把盒子放到相应的位置

    CSS提供了三种传统网页布局方式

    (1) 标准流     就是标签按规定好的方式排列

    (2) 浮动

    (3)定位

     

    float : none;  // 不浮动   (默认值)

    float : left;   //  左浮动

    float : right;   // 右浮动

     

    浮动最典型的应用:  令多个块级元素在一行内排列显示

    浮动的特点

    (1)浮动元素会脱离标准流

    浮动的元素会脱离标准流的控制浮动到指定位置

    浮动的元素将不再保留原先的位置,它后面的元素将会占据它的位置

    (2)任何元素都可以浮动

     

    下面我们初始化一个类名为box的div盒子, 里面有两个小的div盒子

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>Document</title>
     8     <style>
     9         .box {
    10             width: 500px;
    11             height: 300px;
    12             background-color: #999;
    13         }
    14 
    15         .d1 {
    16 
    17             width: 100px;
    18             height: 100px;
    19             background-color: blue;
    20             text-align: center;
    21             line-height: 100px;
    22             font-size: 28px;
    23         }
    24 
    25         .d2 {
    26             width: 150px;
    27             height: 150px;
    28             background-color: blueviolet;
    29             text-align: center;
    30             line-height: 150px;
    31             font-size:28px;
    32         }
    33     </style>
    34 </head>
    35 
    36 <body>
    37     <div class="box">
    38         <div class="d1">盒子1</div>
    39         <div class="d2">盒子2</div>
    40     </div>
    41 
    42 </html>

    给盒子1,和盒子2 添加左浮动

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <title>Document</title>
     8     <style>
     9         .box {
    10             width: 500px;
    11             height: 300px;
    12             background-color: #999;
    13         }
    14 
    15         .d1 {
    16             float: left;
    17             width: 100px;
    18             height: 100px;
    19             background-color: blue;
    20             text-align: center;
    21             line-height: 100px;
    22             font-size: 28px;
    23         }
    24 
    25         .d2 {
    26             float: left;
    27             width: 150px;
    28             height: 150px;
    29             background-color: blueviolet;
    30             text-align: center;
    31             line-height: 150px;
    32             font-size:28px;
    33         }
    34     </style>
    35 </head>
    36 
    37 <body>
    38     <div class="box">
    39         <div class="d1">盒子1</div>
    40         <div class="d2">盒子2</div>
    41     </div>
    42 
    43 </html>

    可以明显的看出 左浮动是相对于其父级元素来说的

    所以浮动元素经常和标准流的父级元素搭配使用,先用标准流父级元素排列上下位置吗,再之后内部的子元素采用浮动的方法

    排列左右位置

    给盒子1 添加一个左浮动,盒子2不添加

    可以看出由于盒子1添加了浮动,它就会脱离标准流的控制,并且不再保留原先的位置。盒子2会升上来占据它的位置

     

    清除浮动

    我们在很多时候不方便给父盒子一个高度,但是如果其子盒子是浮动的,那么当父盒子的高度变为0时,下面的标准流盒子就会升上来,影响布局

    就如下面这段代码,由于子盒子1 添加了浮动,脱离了标准流,不再占有位置,就无法撑起其父盒子,而其父盒子的宽度是0px,所以父盒子就是上面哪一条黑线,而下面的另一个盒子父盒子2就会占据它们的位置

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <title>Document</title>
     7     <style>
     8         .box{
     9             width: 600px;
    10             border:1px solid black;
    11             margin:0 auto;
    12         }
    13         .d1{
    14             float: left;
    15             width: 100px;
    16             height: 100px;
    17             background-color: burlywood;
    18             font-size: 25px;
    19             text-align: center;
    20             line-height: 100px;
    21 
    22         }
    23         .box02{
    24             width: 600px;
    25             height: 600px;
    26             margin: 0 auto;
    27             background: cadetblue;
    28             font-size: 25px;
    29             text-align: center;
    30             line-height: 600px;
    31         }
    32     </style>
    33 </head>
    34 <body>
    35     <div class="box">
    36         <div class="d1">子盒子1</div>
    37     </div>
    38 
    39     <div class="box02">父盒子2</div>
    40 </body>
    41 </html>

     清除浮动的本质:清除浮动元素造成的影响,如果父级盒子本身有高度,是不需要清除浮动的,

    清除浮动后,父级就会根据浮动的子盒子自动检测添加高度,父级有了高度,就不会影响下面的标准流了

    清除浮动的方法  :额外标签法  

     

    在最后的浮动的标签后边添加一个标签,样式中 添加 claer  : both;

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <title>Document</title>
     7     <style>
     8         .box{
     9             width: 600px;
    10             border:1px solid black;
    11             margin:0 auto;
    12         }
    13         .d1{
    14             float: left;
    15             width: 100px;
    16             height: 100px;
    17             background-color: burlywood;
    18             font-size: 25px;
    19             text-align: center;
    20             line-height: 100px;
    21 
    22         }
    23         .box02{
    24             width: 600px;
    25             height: 600px;
    26             margin: 0 auto;
    27             background: cadetblue;
    28             font-size: 25px;
    29             text-align: center;
    30             line-height: 600px;
    31         }
    32         .clear{
    33             clear:  both;
    34         }
    35     </style>
    36 </head>
    37 <body>
    38     <div class="box">
    39         <div class="d1">子盒子1</div>
    40         <div class="clear"></div>
    41     </div>
    42 
    43     <div class="box02">父盒子2</div>
    44 </body>
    45 </html>

     

  • 相关阅读:
    模板template用法
    关联式容器MAP的用法----类似与python中的dict
    迭代器iterator
    c++中的vertor
    Git操作(git reset & get revert)
    代码度量标准
    __attribute__关键字
    Centos7.2部署.Net Core2.0 WebApi
    通过nginx 访问 centos 7 服务器上的.Net Core
    ASP.NET Core部署到CentOS7,使用Nginx代理
  • 原文地址:https://www.cnblogs.com/zysfx/p/12761788.html
Copyright © 2011-2022 走看看