CSS中三栏布局的实现

三栏布局一般指的是页面中一共有三栏,左右两栏宽度固定,中间自适应的布局,三栏布局的具体实现:

  • 利用绝对定位,左右两栏设置为绝对定位,中间设置对应方向大小的margin的值。
.outer {
  position: relative;
  height: 100px;
}

.left {
  position: absolute;
  width: 100px;
  height: 100px;
  background: tomato;
}

.right {
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 100px;
  background: gold;
}

.center {
  margin-left: 100px;
  margin-right: 200px;
  height: 100px;
  background: lightgreen;
}
  • 利用flex布局,左右两栏设置固定大小,中间一栏设置为flex:1。
.outer {
  display: flex;
  height: 100px;
}

.left {
  width: 100px;
  background: tomato;
}

.right {
  width: 100px;
  background: gold;
}

.center {
  flex: 1;
  background: lightgreen;
}
  • 利用浮动,左右两栏设置固定大小,并设置对应方向的浮动。中间一栏设置左右两个方向的margin值,注意这种方式**,中间一栏必须放到最后:**
.outer {
  height: 100px;
}

.left {
  float: left;
  width: 100px;
  height: 100px;
  background: tomato;
}

.right {
  float: right;
  width: 200px;
  height: 100px;
  background: gold;
}

.center {
  height: 100px;
  margin-left: 100px;
  margin-right: 200px;
  background: lightgreen;
}
  • 圣杯布局,利用浮动和负边距来实现。父级元素设置左右的 padding,三列均设置向左浮动,中间一列放在最前面,宽度设置为父级元素的宽度,因此后面两列都被挤到了下一行,通过设置 margin 负值将其移动到上一行,再利用相对定位,定位到两边。
.outer {
  height: 100px;
  padding-left: 100px;
  padding-right: 200px;
}

.left {
  position: relative;
  left: -100px;

  float: left;
  margin-left: -100%;

  width: 100px;
  height: 100px;
  background: tomato;
}

.right {
  position: relative;
  left: 200px;

  float: right;
  margin-left: -200px;

  width: 200px;
  height: 100px;
  background: gold;
}

.center {
  float: left;

  width: 100%;
  height: 100px;
  background: lightgreen;
}
  • 双飞翼布局,双飞翼布局相对于圣杯布局来说,左右位置的保留是通过中间列的 margin 值来实现的,而不是通过父元素的 padding 来实现的。本质上来说,也是通过浮动和外边距负值来实现的。
.outer {
  height: 100px;
}

.left {
  float: left;
  margin-left: -100%;

  width: 100px;
  height: 100px;
  background: tomato;
}

.right {
  float: left;
  margin-left: -200px;

  width: 200px;
  height: 100px;
  background: gold;
}

.wrapper {
  float: left;

  width: 100%;
  height: 100px;
  background: lightgreen;
}

.center {
  margin-left: 100px;
  margin-right: 200px;
  height: 100px;
}

相关推荐

  1. CSS布局实现

    2024-03-16 14:06:01       44 阅读
  2. CSS布局实现

    2024-03-16 14:06:01       47 阅读
  3. 实现布局

    2024-03-16 14:06:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 14:06:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 14:06:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 14:06:01       82 阅读
  4. Python语言-面向对象

    2024-03-16 14:06:01       91 阅读

热门阅读

  1. vue怎么跳转页面?

    2024-03-16 14:06:01       40 阅读
  2. H12-821_279

    2024-03-16 14:06:01       40 阅读
  3. LeeCode 1896 括号树 + 树形 DP

    2024-03-16 14:06:01       40 阅读
  4. Django自定义中间件

    2024-03-16 14:06:01       40 阅读
  5. C++ 虚函数与多态

    2024-03-16 14:06:01       44 阅读
  6. docker 查看日志的三种方式

    2024-03-16 14:06:01       44 阅读
  7. 【本地图片转换为PDF】

    2024-03-16 14:06:01       43 阅读
  8. 关于Qt中的信号与槽

    2024-03-16 14:06:01       45 阅读
  9. SpringMVC 的运行流程

    2024-03-16 14:06:01       38 阅读