CSS布局技巧:浮动布局 | 青训营

84 阅读2分钟

在了解浮动布局之前,我们需要了解“正常文档流”和“脱离文档流”,这是学习浮动布局的理论前提。

正常文档流:

指的是默认情况下页面元素的布局情况,将一个页面从上到下分为一行一行,其中块元素独占一行,相邻行内元素在每一行中按照从左到右排列直到该行排满。

脱离文档流:

指的是脱离正常文档流,想要改变正常文档流,可以使用浮动方法。

/*正常文档流*/
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">

<title>float</title>
<style type="text/css">
    /*定义父元素*/
    #father{
        width: 300px;
        background-color:gray;
        border:1px solid silver;
    }
    /*定义子元素*/
    #father div{
        padding:10px;
        margin:15px;
        border:2px dashed red;
        background-color: white;
    }
   
</style>
</head>
<body>
    <div id="father">
        <div id="son1">box1</div>
        <div id="son2">box2</div>
        <div id="son3">box3</div>
    </div>
</body>

效果如下图:

image.png

设置浮动:

我们可以通过浮动来灵活定位页面元素,达到布局网页的目的。可以通过设置float属性让元素向左或者向右浮动,以便让周围的元素环绕着这个元素。

语法:

float:取值;

值为left时,元素向左浮动,值为right时,元素向右浮动。

为son2和son3设置左浮动,效果:

image.png

son2和son3成为浮动元素,宽度不再延伸,而是由内容决定宽度,如果son3后面还有其他元素,则其他元素会紧贴着son3。如果想要实现两列并排或者多列并排的效果,则可以使用浮动布局来实现。

清除浮动:

从以上的例子中我们可以发现,浮动会影响周围的元素,可能会引发许多预想不到的问题,想要清除这些影响,可以使用clear属性。

语法:

clear:取值;

取值为left,清除左浮动;取值为right,清除右浮动;取值为both,同时清除左右浮动。

<div style="clear:both;">

效果:

image.png

浮动涉及的理论较为复杂:包括块元素和行元素,CS盒子模型,脱离文档流,BFC,层叠上下文。还需要继续去学习理解。