• 使用浮动布局来实现
  1. 左侧元素与右侧元素优先渲染,分别向左和向右浮动
  2. 中间元素在文档流的最后渲染,并将 width 设为 100%,则会自动压到左右两个浮动元素的下面,随后在中间元素中再添加一个div元素并给其设置 margin 左右边距分别为左右两列的宽度,就可以将新元素调整到正确的位置。

  html部分:

<div class="container">
<div class="left">this is left</div>
<div class="right">this is right</div>
<div class="center">
<div class="middle">
this is center
</div>
</div>
</div>

  css部分:

.container {
width: 100%;
height: 100%;
overflow: hidden;
}
.left {
float: left;
width: 400px;
height: 800px;
background-color: black;
}
.center {
width: 100%;
height: 1000px;
background-color: yellow;
}
.middle {
background-color: #fff;
margin: 0 400px;
height: 850px;
}
.right {
float: right;
width: 400px;
height: 800px;
background-color: red;
}
  • 试试利用 BFC
  1. 同样的左右两列元素优先渲染,并分别左右浮动。
  2. 接下来将中间元素设置 overflow: hidden; 成为 BFC 元素块,不与两侧浮动元素叠加,自然能够插入自己的位置。

  html部分:

<div class="container">
<div class="left">this is left</div>
<div class="right">this is right</div>
<div class="center">
this is center
</div>
</div>

  css部分:

.container {
width: 100%;
height: 100%;
overflow: hidden;
}
.left {
float: left;
width: 400px;
height: 800px;
background-color: black;
}
.center {
overflow: hidden;
height: 1000px;
background-color: yellow;
}
.right {
float: right;
width: 400px;
height: 800px;
background-color: red;
}
  • 通过左右元素设置定位,中间元素设置 width: auto; 来实现

  html部分:

<div class="container">
<div class="left">this is left</div>
<div class="center">
this is center
</div>
<div class="right">this is right</div>
</div>

  css部分:

.container {
width: 100%;
height: 100%;
position: relative;
}
.left {
position: absolute;
left: 0;
top: 0;
width: 400px;
height: 800px;
background-color: black;
}
.center {
/* 如果没有这一句,那么,center这个div的文字就不会自动换行 */
width: auto;
margin: 0 400px;
height: 1000px;
background-color: yellow;
}
.right {
position: absolute;
top: 0;
right: 0;
width: 400px;
height: 900px;
background-color: red;
}
  • 双飞翼布局

  主要利用了浮动、负边距、相对定位三个布局属性,使三列布局就像小鸟一样,拥有中间的身体和两侧的翅膀。

  html部分:

<div class="grid">
<div id="div-middle-02">
<div id="middle-wrap-02"><span>div-middle</span></div>
</div>
<div id="div-left-02"><span>div-left</span></div>
<div id="div-right-02"><span>div-right</span></div>
</div>

  css部分:

#div-middle-02 {
float: left;
background-color: #fff9ca;
width: 100%;
height: 80px;
}
#div-left-02 {
float: left;
background-color: red;
width: 150px;
  /* 重点看这里 */
margin-left: -100%;
height: 50px;
} #div-right-02 {
float: left;
background-color: yellow;
width: 200px;
  /* 重点看这里 */
margin-left: -200px;
height: 50px;
}
#middle-wrap-02 {
margin: 0 200px 0 150px;
background-color: pink;
}

  

CSS如何实现三列布局?如果两端固定、中间是自适应又该如何做?的更多相关文章

  1. css实现div两列布局——左侧宽度固定,右侧宽度自适应(两种方法)

    原文:css实现div两列布局--左侧宽度固定,右侧宽度自适应(两种方法) 1.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 2.思路 首先把这个问题分步解决,需要攻克以 ...

  2. css布局--两列布局,左侧固定,右侧自适应(其中左侧要可以拖动,右侧水平滚动条)

    (css布局所要实现的效果) 在前端面试中经常会被问到CSS布局,两列布局,左侧固定,右侧自适应.前几天去面试,遇到了这道题的升级版,要求左侧可拖动,右侧要有水平滚动条.拿到题目确实有些大脑短路,不知 ...

  3. HTML/CSS学习之 三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化

    第一种方法:绝对定位 <!DOCTYPE html> <html> <head> <title>三列布局</title> <link ...

  4. CSS 实现:两栏布局(一边固定,一边自适应)

    ☊[实现要求]:CSS实现左边固定,右边自适应父容器宽度的两栏布局. <body> <div class="left"></div> <d ...

  5. css之页面三列布局

    左右两边宽度固定,中间自适应 第一种方法:左右两边绝对定位 html代码 <div class="left"></div> <div class=&q ...

  6. css之页面三列布局之左右两边宽度固定,中间自适应

    左右两边宽度固定,中间自适应 左右两边绝对定位 可以利用浮动,左边的左浮动,右边的右浮动 css3 flex布局(html http://www.cnblogs.com/myzy/p/5919814. ...

  7. css之页面三列布局之左右上下高度固定,中间自适应

    第一种,绝对定位 !DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <tit ...

  8. 记一道css面试题 : 三栏布局两边宽度固定,中间宽度自适应,并且布局随屏幕大小改变。

    前几天面试时有道css题没做出来,回来好好学习一番后把其记录下来. 题目是这样的:左中右三栏布局,左右两栏宽度固定,左右两栏的宽度为200像素,中间栏宽度自适应.当屏幕小于600px时,3栏会分别占用 ...

  9. CSS设计一个三列布局的页面

    探讨这种布局是因为最近对话框组件以及信息系统B/S界面布局的需要.无论是什么,我们在写CSS之前首先引入reset.css,我使用的是淘宝的reset. 01 /* 02 KISSY CSS Rese ...

随机推荐

  1. C do...while 循环

    不像 for 和 while 循环,它们是在循环头部测试循环条件.在 C 语言中,do...while 循环是在循环的尾部检查它的条件. do...while 循环与 while 循环类似,但是 do ...

  2. HDU 1016 素数环(dfs + 回溯)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 一道很典型的dfs+回溯: 根据题意首先进行初始化,即第一个位置为1,然后进行dfs, ...

  3. 【转载】MyEclipse6.5 KeyGen

    输入自己的注册名,生成注册码,完成注册 package keyGenerate; import java.io.BufferedReader; import java.io.IOException; ...

  4. VMware虚拟磁盘修复

    最近VMware虚拟机老是断掉提示无法完成同步,后来提示虚拟磁盘需要修复,经过一番查询,找到了相关检查与修复口令,先记录如下. vmware-vdiskmanager -R “PATH” 说明: PA ...

  5. python opencv:图像的一些属性与操作

    img = cv.imread(xxx) # 常用的有以下属性 type(img) # img的数据类型 img.shape # img的结构 img.size # img的大小 img.dtype ...

  6. [蓝桥杯2017初赛]Excel地址

    题目描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,.... 当然Excel的最 ...

  7. kafka connector

    Kafka Connect 是一种用于在 Kafka 和其他系统之间可扩展的.可靠的的流式传输数据的工具.它使得能偶快速定义将大量数据集合移入和移除 kafka 连接器变得简单. kafka conn ...

  8. 比较器Comparable Comparator

    一. Comparable Comparable 是排序接口,若一个类实现了 Comparable 接口,就意味着该类支持排序.实现了Comparable 接口的类的对象的列表或者数组可以通过 Col ...

  9. header头中 content-type的作用

  10. pip使用技巧

    1. pip install 'easydict==1.6' --force-reinstall 强制安装制定version 2. pip install git+https://github.com ...