左右两边宽度固定,中间自适应

  1. 左右两边绝对定位

  2. 可以利用浮动,左边的左浮动,右边的右浮动

  3. css3 flex布局(html http://www.cnblogs.com/myzy/p/5919814.html)

  4. table布局

  5. grid布局 (https://www.w3cplus.com/css3/line-base-placement-layout.html)

第一种方法:左右两边绝对定位

html代码

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

css代码

.left {
height: 200px;
width: 300px;
background-color: blue;
position: absolute;
left: ;
top:
}
.right {
width:300px;
height: 200px;
background-color: red;
position: absolute;
right: ;
top:;
}
.middle{
height: 300px;
background-color: yellow;
margin: 300px;
}

优点:快捷,不容易出问题

缺点:子元素也脱离的文档流,这样有效性就相对还说比较差

如果高度不固定, 两边的模块不会随中间的部分改变而改变

 第二种方法:可以利用浮动,左边的左浮动,右边的右浮动

css部分

       #left {
width: 100px;
float: left;
background: green;
height: 300px;
} #right {
width: 100px;
float: right;
background: red;
height: 300px;
} #middle {
margin-right: 110px;
margin-left: 110px;
height: 300px;
background: #ccc;
}

html部分;

   <div id="left">
</div>
<div id="right">
</div>
<div id="middle">
</div>

优点:兼容性好(处理好清除浮动,和周边元素的关系)

缺点:float后脱离文档流,处理不好会有很多问题,这个是这种排版的局限性。

如果高度不固定,不做修改,此方法不再好使,因为中间的部分会超出两边的部分。

第三种方法:css3 flex布局

css:

.content{
display:flex;
}
.left {
height: 200px;
width: 300px;
background-color:red
}
.right {
width:300px;
height: 200px;
background-color:blue;
}
.middle{
height: 300px;
background-color: yellow;
flex:;
}

html

<div class="content">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>

优点:吸收了前面两个的优点

缺点:兼容性问题

如果高度不固定,两边的部分会随着中间部分变高。

第四种方法:table布局

css

.content{
display:table;
width:100%;
height: 100px;
}
.content>div{
display: table-cell;
}
.left {
height: 200px;
width: 300px;
background-color:red
}
.right {
width:300px;
height: 200px;
background-color:blue;
}
.middle{
height: 300px;
background-color: yellow;
}

html:

<div class="content">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>

优点:兼容性特别好,例如ie8

缺点:同时增高的高度

如果高度不固定,两边的部分会随着中间部分变高。

第五种方法:grid布局

css:

.content{
display:grid;
width:100%;
grid-template-rows:100px;
grid-template-columns:300px auto 300px;
} .left {
height: 200px;
width: 300px;
background-color:red
}
.right {
width:300px;
height: 200px;
background-color:blue;
}
.middle{
height: 300px;
background-color: yellow;
}

html

<div class="content">
<div class="left"></div>
<div class="middle"></div>
<div class="right"></div>
</div>

如果高度不固定,所有的模块不会所内容增加而变高

上下固定中间自适应解决办法:http://www.cnblogs.com/pigtail/archive/2012/11/25/2787508.html

css之页面三列布局的更多相关文章

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

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

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

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

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

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

  4. CSS如何实现三列布局?如果两端固定、中间是自适应又该如何做?

    使用浮动布局来实现 左侧元素与右侧元素优先渲染,分别向左和向右浮动 中间元素在文档流的最后渲染,并将 width 设为 100%,则会自动压到左右两个浮动元素的下面,随后在中间元素中再添加一个div元 ...

  5. css之页面两列布局

    两列布局:左边固定,后边自适应 第一种方法:左边的div左浮动或者是绝对定位,右边的div加margin-left:左边div的宽度 html部分 <div class="left&q ...

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

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

  7. css实现三列布局,左右固定值,中间自适应。

    这里主要用到的是position:absolute;及margin属性;代码很简单,一看就明白. <!DOCTYPE html> <html lang="zh_CN&quo ...

  8. css常见的各种布局下----三列布局

    css 三列布局,左右固定宽度右边自适应 1不使用定位,只使用浮动可以实现左右固定,中间宽度自适应布局 1.1.1 自适应部分一定要放第一个位子,使用浮动,并且设置宽度为100%,不设置浮动元素内容不 ...

  9. CSS常用布局方式-两列布局、三列布局

    CSS基础 2.几种布局方式1)table布局 当年主流的布局方式,第一种是通过table tr td布局 示例: <style type="text/css"> ta ...

随机推荐

  1. PHP+Mysql+jQuery实现地图区域数据统计-展示数据

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...

  2. 数据库MySQL基本语法思维导图

  3. Activity生命周期(深入理解)

    今天看到一篇大神总结Activity的文章,内容甚为详细,特此转载http://www.cnblogs.com/lwbqqyumidi/p/3769113.html Android官方文档和其他不少资 ...

  4. HBase设计与开发性能优化(转)

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...

  5. sersync

    一.准备 1.目标:从192.168.0.1上把/app/web/cnblogs.com/data下文件同步到192.168.0.2下的/app/web/cnblogs-slave.com/data: ...

  6. load()方法---------jQuery动态加载html

    jquery代码 $("#div").load("test.html"); test.html   ----------------被加载页面(有<HTM ...

  7. Nhibernate对应关系参数介绍

    一.多对一关联映配置介绍 <many-to-one name="PropertyName" 属性名 column="column_name" 数据库字段名 ...

  8. XE7 & IOS开发之开发账号(3):证书、AppID、设备、授权profile的申请使用,附Debug真机调试、Ad hoc下iPA文件生成演示(XCode5或以上版本推荐,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...

  9. UNIX历史和标准

    1969年,bell实验室 Ken Thompson在小型机上首次实现了UNIX系统 1979年,加州伯克利分校发布了UNIX发布版--BSD, 随着AT&T不在对电信市场形成垄断,该公司被允 ...

  10. 记录一下emacs在window下的配置过程

    今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ...