实现两栏布局的几种方式

两栏布局(左侧固定宽度,右侧自适应),在工作中总结了几种方法

<!-- HTML结构 -->
<div class="wrap">
    <div class="left">
        左侧固定内容
    </div>
    <div class="right">
        右侧内容自适应
    </div>
</div>
  1. 使用浮动—float

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    
    .wrap {
        overflow: hidden;
        border: 1px solid red;
    }
    /* 脱离文档流 */
    .left {
        float: left;
        width: 200px;
        height: 200px;
        background: purple;
    }
    
    .right {
        margin-left: 200px;
        background: skyblue;
        height: 200px;
    }
    
  2. 使用绝对定位实现—absolute

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    
    .wrap {
        overflow: hidden;
        position: relative;
    }
    /* 脱离文档流 */
    .left {
        position: absolute;
        left: 0;
        top: 0;
        width: 200px;
        height: 200px;
        background: purple;
    }
    
    .right {
        margin-left: 200px;
        background: skyblue;
        height: 200px;
    }
    
  3. 使用表格布局—table

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    /* 表格布局 */
    .wrap {
        display: table;
        width: 100%;
    }
    
    .left {
        display: table-cell;
        width: 200px;
        height: 200px;
        background: purple;
    }
    
    .right {
        display: table-cell;
        background: skyblue;
        height: 200px;
    }
    
  4. 使用calc()函数

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    /* 双float */
    .wrap {
        overflow: hidden;
    }
    
    .left {
        float: left;
        width: 200px;
        height: 200px;
        background: purple;
    }
    
    .right {
        float: left;
        background: skyblue;
        height: 200px;
        width: calc(100% - 200px);
    }
    
  5. 使用inline-block和calc()函数

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    /* 双float */
    .wrap {
        overflow: hidden;
        width: 100%;
        font-size: 0;
    }
    
    .left {
        display: inline-block;
        width: 200px;
        height: 200px;
        background: purple;
        font-size: 20px;
    }
    
    .right {
        display: inline-block;
        background: skyblue;
        height: 200px;
        width: calc(100% - 200px);
        font-size: 20px;
    }
    
  6. 使用弹性布局—flex

    /* 清除浏览器默认边距 */
    * {
        margin: 0;
        padding: 0;
    }
    .wrap {
        display: flex;
    }
    .left {
        height: 200px;
        background: purple;
        flex:0 0 200px
    }
    .right {
        background: skyblue;
        height: 200px;
        flex: 1;
    }
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,921评论 0 1
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,713评论 1 92
  • 这篇文字里我会介绍50 个便于使用的 CSS2/CSS3 代码片段给所有的WEB专业人员. 选择IDE开发环境来存...
    JamHsiao_aaa4阅读 5,261评论 0 3
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 8,419评论 0 11
  • 刚刚我跟月亮通过电话, 嘱咐它洒下清辉伴你入睡; 我也给星星发了邮件, 要它点缀夜空伴你美梦, 它们都答应啦, 所...
    星辰喵阅读 1,337评论 0 2

友情链接更多精彩内容