美文网首页
实现两列布局的方法

实现两列布局的方法

作者: 元气满满321 | 来源:发表于2017-08-20 14:27 被阅读80次

html

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

1. float+margin-left

.main{
 border: 1px solid black;
  overflow: hidden;//清除浮动
}
.left{
  width: 200px;
  background: green;
  float: left;
  
}
.right{
  margin-left: 200px;
  background: red;
}

left设为float: left,脱离文档流。right是块级元素会"无视"浮动元素,它的宽度随着适应父元素的宽度,此时margin-left为left元素的宽度。

2. absolute+margin-left

.main{
 border: 1px solid black;
  
}
.left{
  width: 200px;
  background: green;
  position: absolute;
}
.right{
  margin-left: 200px;
  background: red;
}

另外一种让两个block排列到一起的方法是对左侧盒子使用position: absolute的绝对定位。这样,右侧盒子也能无视掉它

3. 浮动和负边距实现

html

<div class="main">
    <!--右边盒子先渲染-->
    <div class="right">
        <div class="right-inner">right-inner</div>
    </div>
    <div class="left">left</div>
</div>

css

.main {
            border: 1px solid black;
        }

        .left {
            float: left;
            width: 200px;
            background: green;
            margin-left: -100%;
        }

        .right {
            float: left;
            width: 100%;
        }

        .right-inner {
            margin-left: 200px;
            background: yellow;
        }

可以不用指定左边宽度(即不用计算)的方法有:

4. flex

.main{
 border: 1px solid black;
 display: flex;
}
.left{
  width: 100px;
  background: green;
}
.right{
  background: red;
  flex: 1;
}

只须将右边盒子flex:1,意为宽度自动伸缩

5. float+BFC

.main{
 border: 1px solid black;
overflow: auto;
}
.left{
  float: left;
  background: green;
  margin-right: 20px;
}
.right{
  background: red;
  overflow: hidden;
}

由于触发了BFC的元素不会与浮动元素重叠这条特性,这种情况下,只需要为左侧的浮动盒子设置margin-right,就可以实现两个盒子的距离了。而右侧盒子是block级别的,所以宽度能实现自适应

链接

https://zhuqingguang.github.io/2017/08/16/adapting-two-layout/

相关文章

  • 实现两列布局的方法

    html 1. float+margin-left left设为float: left,脱离文档流。right是块...

  • css常见布局(二)

    采用flex实现两列,三列等多列的布局 一、两列布局 二、三列布局

  • 常见的布局实现

    本章主要介绍常见的布局实现,包括: [1] 两列布局 [2] 三列布局 [3] 弹性 (Flex) 布局 [1] ...

  • 页面布局之两列等高布局

    两列等高布局的方法有很多种。 html结构如下: 方法一:利用负边距实现 方法二:使用display:table-...

  • Pc端浮动、定位布局

    前言 pc端的布局大致是靠浮动,和定位来实现的,在这里我总结了一点点方法。 两列布局 三列布局 相对定位和绝对定位...

  • css布局及居中

    双列布局(左右布局) 如何实现:浮动元素+普通元素 三栏式布局(左中右布局) 两侧两列固定宽度,中间列自适应宽度 ...

  • CSS-布局1-浮动三列布局

    1、三列布局需求 网页中,常见的实现3列布局,左右两边宽宽固定,中间自适应的布局。本节介绍一种,最简单的实现思路,...

  • 2018-08-30日前端面试题

    点击查看源码 1、css实现两列布局 1.右侧固定宽度,左侧自适应屏幕宽度;2.左右两列等高布局;3.左右两列的高...

  • css布局-右侧定宽,左侧自适应

    考虑一个两列布局,右侧盒子的宽度固定,左侧占剩余空间且自适应。html结构如下: 1. flex布局实现 方法:f...

  • 实现两列的弹性布局

    需求: 在一个大div内有两个div,横向排列,要求两个div正好占满一行且左边的宽度不固定。如下: 宽度不...

网友评论

      本文标题:实现两列布局的方法

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