美文网首页
CSS浮动布局

CSS浮动布局

作者: 白羽之鹰 | 来源:发表于2021-01-26 23:09 被阅读0次

说浮动布局,就得先知道文档流,文档流有正常文档流脱离文档流

  • 正常文档流:将一个页面从上到下分为一行一行,块元素独占一行,相邻行内元素在每一行中按照从左到右排列直到该行排满。使元素不按正常文档流就是脱离文档流。
    例如:
<body>
    <div class="div00">
        <div class="div01"></div>
        <div class="div02"></div>
        <span></span><span></span>
        <div class="div03"></div>
        <div class="div04"></div>
    </div>
</body>

对应的正常文档流如图,

image.png
改变正常文档流的方法:浮动和定位。
1.使用浮动脱离文档流

例如01:

html:
    <div class="div00">
        <div class="div01">div01块</div>
        <div class="div02">div02块</div>
        <div class="div03">div03块</div>
        <div class="div04">div04块</div>
    </div>
scss (用了sass预处理器):
.div00{
    width: 200px;
    //注意这里目前未设置父元素的高度
    background-color: chartreuse;
    div{
        height: 50px;
    }
    .div01{
        float: left;
        background-color: aqua;
    }
    .div02{
        background-color: bisque;
    }
    .div03{
        background-color: blueviolet;
    }
    .div04{
        background-color: blue;
    }
}

结果:


image.png

分析:对div01设置了左浮动,使div01脱离了文档流,div01是在div02的上面一层,实际的div02还是占据了一整行,div02的文字部分看着像被挤出来了,其实这就是文字环绕的实现(文字是英文时有点问题)。
例如02:
只设置后面两个div左浮动
结果:


image.png

例如03:
全部设置左浮动,会从左到右依次排列。(right的相反)注意这里出现了父元素高度塌陷,height为0


image.png
例如04:
父元素宽度不能容纳浮动的元素时,就会换到下一行。
image.png

2.浮动带来的影响

  • 对设置了浮动的元素自身来讲,无论是什么元素这个元素都会变成block元素
  • 浮动元素的高度大于父元素的高度,或者父元素没有设置高度,那么会出现父元素高度塌陷的问题,如例03
    如何解决呢?
    有clear、overflow:hidden,::after三种,这里推荐第三种伪类的方法
.div00{
    *zoom: 1;
}
.div00::after{
    clear: both;
    content: '';
    display: block;
    height: 0;
    visibility: hidden;
}

效果如图:对比例3,父元素高度塌陷问题解决


image.png
  • 对兄弟元素的影响见例01和例03
  • 父元素是浮动元素,并且他的子元素也是浮动元素,那么父元素会自适应的包含子元素,也是解决父元素高度塌陷的方法之一

此外,浮动可以用来实现两列布局或多列布局
例如:

html:
<body>
    <div class="div00">
        <div class="div01">div01块</div>
        <div class="div02">div02块</div>
    </div>
</body>
scss:
.div00{
    *zoom: 1;
}
.div00::after{
    clear: both;
    content: '';
    display: block;
    height: 0;
    visibility: hidden;
}
.div00{
    width: 100%;
    background-color: white;
    div{
        height: 5000px;
    }
    .div01{
        margin-left: 10%;
        width: 40%;
        float: left;
        background-color: aqua;
    }
    .div02{
        margin-right: 10%;
        width: 40%;
        float: right;
        background-color: bisque;
    }
}

结果:


image.png

相关文章

  • CSS的布局与居中

    css的布局 css左右布局 双浮动|左右布局: 双浮动: 在子元素下面添加float,在父元素上面加上clear...

  • 浅谈CSS关于清除浮动的三种方法

    浅谈CSS关于清除浮动的三种方法 CSS中,因为布局需要,我们常常希望出现一些浮动布局,比如图文环绕。这些浮动布局...

  • 块状元素和内联元素、盒子模型

    div+css布局 表格布局 table布局 div+css布局 浮动布局 块状元素和行内元素 display:...

  • CSS第四节(1)

    1、css标准流排版特点及流式布局 标准流式布局:从左到右 从上到下 2、css浮动的原理 浮动不影响标准流布局,...

  • CSS布局套路

    CSS布局 布局套路 浮动布局 宽度百分比浮动布局http://js.jirengu.com/yobiq/1/ed...

  • CSS的浮动属性

    CSS浮动和清除浮动 1.浮动float div配合float浮动来做页面的布局,浮动最常用的地方就是用来做布局。...

  • 前端面试复习要点

    一、HTML和CSS 页面布局的方法 1、浮动布局(布局简单,兼容性好,但是浮动元素脱离文档流) 2、绝对定位布局...

  • CSS---浮动

    1. 浮动(float) 1.1 CSS 布局的三种机制 网页布局的核心——就是用 CSS 来摆放盒子。 CSS ...

  • CSS 布局实现左边固定宽度,右边占满剩余宽度

    float 浮动 浮动是最普遍实现的方式,但 css 浮动的初衷并不是用于布局的,所以浮动布局迟早会被淘汰,应该作...

  • CSS浮动布局

    说浮动布局,就得先知道文档流,文档流有正常文档流、脱离文档流。 正常文档流:将一个页面从上到下分为一行一行,块元素...

网友评论

      本文标题:CSS浮动布局

      本文链接:https://www.haomeiwen.com/subject/dbmnzktx.html