为了账号安全,请及时绑定邮箱和手机立即绑定

把position:absolute改成relative后,为何布局就不一样了,第三个直接换行了

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        body{

            margin: 0;

            padding: 0;

        }

        .left{

            width: 200px;

            height: 300px;

            background-color: chartreuse;

            float: left;

        }

        .middle{

            height: 300px;

            background-color: chocolate;

            /* float: left; */

            margin: 0 410px 0 210px;

        }

        .right{

            width: 400px;

            height: 300px;

            background-color: cornflowerblue;

            /* float: right; */

            /* position: absolute; */

            position: relative;

            right: 0;

            top: 0;

        }

    </style>

</head>

<body>

    <div class="left"></div>

    <div class="middle">当非float元素和float元素挨在一起的时候,非float元素会排斥float元素,所以导致后面的float元素换行了,

        可以将float元素排在非float元素之前,又或者把非float元素设置为float,或使用position:absolute

    </div>

    <div class="right"></div>

</body>

</html>

http://img1.sycdn.imooc.com//5e90a6350001f46113550603.jpg

正在回答

2 回答

相对定位的盒子不脱离标准流,又因为middle盒子是块级元素,所以同为块级元素的right会被挤下来。

0 回复 有任何疑惑可以回复我~

relative是相对定位,是相对于元素的初始位置,也就是如果没有position时的位置。这里如果没有position,right原本应该在的位置就是图中现在所在的位置,后面你又规定了right:0、top:0,所以位置不变。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
如何用CSS进行网页布局
  • 参与学习       209691    人
  • 解答问题       1153    个

用最简洁的案例教你布局的那些知识,这是前端工程师基本技能

进入课程

把position:absolute改成relative后,为何布局就不一样了,第三个直接换行了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信