BFC 两列布局,左侧固定,右侧自适应

题目: 实现一个两列布局,左侧宽度150,右侧自适应
这是一段完整的代码

<!DOCTYPE html>
<html>
<head>
    <title>BFC</title>
    <meta charset="utf-8"/>
    <style>
        .wrap{
            width:300px;
            position: relative;
            border:1px solid #000;
        }
        .aside{
            width:100px;
            height: 150px;
            float: left;
            background: red;
        }
        .main{
            height: 200px;
            background: yellow;
            overflow: hidden;
        }

        .par{
            border:5px solid #000;
            width:300px;
            overflow: hidden;
        }
        .child{
            border:5px solid #f66;
            width:100px;
            height:100px;
            float: left;
        }
        p{
            color:red;
            background: #fcc;
            width:200px;
            line-height: 200px;
            text-align: center;
            margin: 100px;
        }
        .wrapP{
            overflow: hidden;
        }
    </style>
</head>
<body>

    <h1>自适应两栏布局</h1>
      
    <div class="wrap">
        <div class="aside"></div>
        <div class="main"></div>
    </div>
    <h1>清除内部浮动</h1>
    <div class="par">
        <div class="child"></div>
        <div class="child"></div>
    </div>
    <h1>防止垂直margin重叠</h1>
    <p>哈哈</p>
    <div class="wrapP">
        <p>haha</p>
    </div>

    
</body>
</html>
image.png
image.png

这是效果,
BFC是块级格式化上下文,一个创建了新的BFC 的盒子是独立布局的,盒子内元素的布局不会影响盒子外部的元素,在同一个BFC中的两个相邻的盒子在垂直方向发生margin 重叠的问题

实现一个两列布局,左侧宽度150,右侧自适应

方法二 左边position:absolute;右边margin-left:200px;

<div class="wrap">
        <div class="left1" style="position: absolute;">left1</div>
        <div class="right1" style="margin-left:200px;">right1</div>
    </div>

方法三 左边浮动,右边margin-left

<div class="wrap">
        <div class="left1" style="float:left;">left1</div>
        <div class="right1" style="margin-left:200px;">right1</div>
    </div>

方法四 position :absolute 也能达到效果

<div class="wrap">
        <div class="left1" style="position:abxolute;left:0;top:0;width:150px">left1</div>
        <div class="right1" style="position:abxolute;left:150px;width:100%;top:0;">right1</div>
    </div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 双飞翼布局和BFC 之前看到了一些面试题中,面试官会问到如果实现双飞翼布局或者是圣杯布局,这两个布局的理念基本是类...
    LucasDog阅读 1,070评论 0 4
  • 定义 BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域...
    Arno_z阅读 2,570评论 1 5
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 965评论 0 2
  • 真是一个小例子引发的“命案”呀,原本只是在想为什么一个容器内的块元素几个块元素会发生外边距(margin coll...
    Katherine的小世界阅读 580评论 2 6