华南理工大学创维维生素

浮动的作用

2020-11-20  本文已影响0人  奶不加糖

我们先来随便定义三个box

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8>"
        <title>浮动</title>
        <style type="text/css">
            .box1{
                width:200px;
                height:200px;
                background-color: red;
            }
            .box2{
                width:200px;
                height:200px;
                background-color:yellow;
            }
            .box3{
                width:200px;
                height:200px;
                background-color: green;
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </body>
</html>

可以发现这三个box是竖着排列的。因为块元素在文档流中是默认垂直排列的,所以这三个div自上至下依次排开。这种情况影响了我们对网页的布局,我们要如何让它可以横向排列呢?不妨给它们都加上下面这一行语句试试。

display:inline-block;/*行内块元素*/

好啦它横过来了,但是我们又发现一个新的问题。我们并没有设置块间距,但是结果显示块与块之间存在着间距是怎么回事呢?因为行内块元素可以理解为文字,div之间的空格引起的。解决方法:

<div class="box1"></div><div class="box2"></div><div class="box3"></div>

既然块元素在文档流里垂直排列,那我们是不是可以考虑让它脱离文档流?因此我们可以使用float来使元素浮动。

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

我们把box1设一个float:right;看看结果


可以看到box1向右浮动了,其余块依旧是垂直排列。元素浮动后会尽量向页面的左上或者右上漂浮,直到遇到父元素边框。如果浮动元素上边是一个没有浮动的块元素,则浮动元素不会超过块元素。如果一行中不能容下该元素,则会自动换行。我们把box1调宽看看结果如何

.box1{
                float:left;
                width:1200px;
                height:200px;
                background-color: red;
            }
            .box2{
                float:left;
                width:200px;
                height:200px;
                background-color:yellow;
            }
            .box3{
                float:left;
                width:200px;
                height:200px;
                background-color: green;
            }

我们可以设置多种float情况看看运行结果,在此就不一一列举了。
我们再来看看另外一个例子

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8>"
        <title></title>
        <style type="text/css">
            .box1{
                width:100px;
                height:100px;
                background-color: red;
            }
            .p1{
                height:200px;
                background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>         
        <p class="p1"></p>
    </body>
</html>

红色块与顶部以及两个块之间都存在间距,这是默认样式导致的。加上下列语句可将其去掉。

*{
                margin:0;
                padding:0;
            }

如果我们往块内添加文字,浮动对文字会有什么影响呢?


浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围,所以我们可以用这种操作实现文字图片的效果。

在文档流中,子元素的宽度、高度默认占父元素的全部,但是当元素设置浮动后会完全脱离文档流,即宽度、高度不再是默认占父元素的全部了,其高度、宽度被内容撑开。此外,内联函数不可设置宽高,但是脱离文档流后会变成块元素,即可设置宽高。

上一篇 下一篇

猜你喜欢

热点阅读