1.两栏布局

  两栏布局一般就是一栏定宽一栏自适应(也就是流动)。分的细的话还有左栏定宽右栏自适应、右栏定宽左栏自适应。

  举个栗子:一栏定宽200px,一栏自适应。

 <head>
<meta charset="UTF-8">
<title>两栏布局</title>
<style>
.wrap{clear: both;height: 400px;font-weight:bold;">#e9e9e9;}
.side{float: left;width: 200px;font-weight:bold;">#d4d4d4}
.content{margin-left: 200px;font-weight:bold;">#ccc;}
</style>
</head>
<body>
<div class="wrap">
<div class="side">这里定宽</div>
<div class="content">这里是内容自适应这。。。。。。应这里是内容自适应</div>
</div>
</body>

最终效果:

如果右栏定宽,左栏自适应

 <head>
<meta charset="UTF-8">
<title>两栏布局</title>
<style>
.wrap{clear: both;height: 400px;background-color: #e9e9e9;}
.side{float: right;width: 200px;background-color: #d4d4d4}
.content{margin-right: 200px;background-color: #ccc;}
</style>
</head>
<body>
<div class="wrap">
<div class="side">这里定宽</div>
<div class="content">这里是内容自。。。。应这里是内容自适应这里是内容自适应</div>
</div>
</body>

如图:

这里特别说明:定宽的一栏先写,然后根据哪一侧定宽再向哪边浮动,自适应的再相应设置margin。

2.三栏布局

  三栏布局一般是左右栏定宽,中间自适应。

核心问题,就是处理右栏的定位,并在中栏内容区大小改变时控制右栏与布局的关系。
    方法一:
        控制两个外包装容器的外边距。其中一个外包装包围所有三栏,另一个外包装只包围左栏和中栏。
    第一个外包装宽度100%,第二个外包装宽度100%,右外边距设为负数,给右边栏流出位置,右栏固定宽度左浮动。
    第二个外包装中,左边栏固定宽度左浮动,中栏宽度自适应设为auto,分别设置左外边距和右外边距,分别为左栏和右栏宽度,此处边距应是正数。
    第二个外包装也要左浮动
代码如下:
 <head>
<meta charset="UTF-8">
<title>三栏流动布局</title>
<style type="text/css">
* {margin:0; padding:0;}
body {font:1em helvetica, arial, sans-serif;}
a{ text-decoration: none; color: #fff;}
li{ list-style-type: none; } div#main_wrapper{min-width:600px; max-width:1100px;margin:0 auto;}
header {padding:5px 10px;background:#3f7ccf;}
div#threecolwrap {float:left;width:100%;}
div#twocolwrap{ float: left; width: 100%; margin-right:-210px; }
nav {float:left;width:150px;background:#f00;padding:20px 0;}
nav > * {margin:0 10px;}
article {width:auto;margin-left:150px;margin-right:210px;background:#eee;padding:20px 0;}
article > * {margin:0 20px;}
aside {float:left;width:210px;background:#ffed53;padding:20px 0;}
aside > * {margin:0 10px;}
footer {clear:both;width:100%;text-align:center;background:#333;}
</style>
</head>
<body>
<div id="main_wrapper">
<header>页头</header>
<div id="threecolwrap">
<div id="twocolwrap">
<nav>
<ul>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
</ul>
</nav>
<article>
<div class="inner">
这里是一些文本元素这里是...这里是一些文本元素.
</div>
</article>
</div>
<aside>
<ul>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
</ul>
</aside>
</div>
<footer>页脚</footer>
</div>
</body>

 
    方法二:
        css3的单元格实现,给每栏设置 display:table-cell;如果是固定栏,再设置上宽度即可。但此方法只支持ie7以上版本
 <head>
<meta charset="UTF-8">
<title>三栏流动布局</title>
<style type="text/css">
* {margin:0; padding:0;}
body {font:1em helvetica, arial, sans-serif;}
a{ text-decoration: none; color: #fff;}
li{ list-style-type: none; }
header {padding:5px 10px;background:#3f7ccf;}
nav,article,aside{display: table-cell;}
nav {width: 150px;background:#f00;padding:20px 0;}
nav > * {margin:0 10px;}
article {width:auto;background:#eee;padding:20px 0;}
article > * {margin:0 20px;}
aside {width:210px;background:#ffed53;padding:20px 0;}
aside > * {margin:0 10px;}
footer {clear:both;width:100%;text-align:center;background:#333;}
</style>
</head>
<body>
<div id="main_wrapper">
<header>页头</header>
<div id="threecolwrap">
<nav>
<ul>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
<li><a href="#">无序列表</a></li>
</ul>
</nav>
<article>
<div class="inner">
这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素.
</div>
</article>
<aside>
<ul>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
<li><a href="#">第三列导航链接</a></li>
</ul>
</aside>
</div>
<footer>页脚</footer>
</div>
</body>
 

												

css实现布局的更多相关文章

  1. css双飞翼布局

     双飞翼布局是一种比较灵活的布局,始于淘宝UED,玉伯提出的,他着重介绍的是双飞翼栅格布局. 三列布局为"双飞燕"布局,可以把三栏比作一只鸟,main部分相当是于鸟的身体,而lef ...

  2. 奇妙的CSS之布局与定位

    前言 关于布局与定位是Web前端开发里非常基础而又重要的部分.介绍相关知识的文章,很容易就可以找到.虽然,这方面的知识点不是很多,但我们如果不弄清楚,在运用时候往往会出现预料之外的布局,这些“意外”有 ...

  3. 原生 CSS 网格布局学习笔记

    下是来自Oliver Williams的帖子. Oliver已经学习了相当长时间的原生CSS网格,可以说是在CSS网格方面有一定的发言权.在这篇文章中,他将以非同寻常的思路分析自己的CSS网格布局学习 ...

  4. CSS网页布局全精通

    在本文中将使用四种常见的做法,结合CSS于结构化标记语法制作两栏布局.很快地就会发现,不用嵌套表格,间隔用的GIF也能做出分栏版面布局. 相关文章:CSS网页布局开发小技巧24则 稍后在"技 ...

  5. 【转】一个DIV+CSS代码布局的简单导航条

    原文地址:http://www.divcss5.com/shili/s731.shtml 简单的DIV CSS代码布局实现导航条 一个蓝色主题的导航条布局案例,本CSS小实例,采用DIV CSS实现. ...

  6. 用css进行布局

     用css进行布局 一,开始布局的注意事项 1.作为最佳实践,应把html(内容)和css(显示)分离: 2.网站设计主要有两大类型:固定宽度(基于像素)和响应式(也称流式,使用百分数定义) 二,构建 ...

  7. CSS网页布局错位:CSS宽度计算

    为什么计算宽度计算网页像素宽度是为了CSS网页布局整齐与兼容.常见的我们布局左右结构网页或使用padding.margin布局的时候将计算整页宽度,如果不计算无论是宽度过大过小就会出现错位问题. 怎么 ...

  8. html/css 盒子布局 Margin 、Padding 、border 以及 清除浮动的知识 (学习HTML过程中的小记录)

    html/css  盒子布局 Margin .Padding .border 以及 清除浮动的知识 (学习HTML过程中的小记录) 作者:王可利(Star·星星) width     是"宽 ...

  9. CSS+DIV布局初练—DIV元素必须成对出现?

    一直做C/S开发的工作,但是很少做和布局相关的工作,往往都是同事将界面设计好,自己填写代码而已,对于B/S的工作,做过,但是很少没有像C/S这么多,界面布局的话,更无从谈起. 日子就这么过,一天一个样 ...

  10. 总结与学习DIV+CSS网页布局技巧

    以前用表格布局时设置网页居中非常方便,把表格对齐方式设置为居中就行了,就这么简单,现在呢,用DIV+CSS样式表控制,好像不是那么容易了,其实也很简单,只不过方式不同而已. <style> ...

随机推荐

  1. ssm项目导入activiti依赖后jsp页面el表达式报错

    错误原因:Tomcat8.x与activiti6.0依赖冲突导致 解决方法: 1.修改tomcat版本 2.在pom.xml中修改 在依赖中把 <dependency> <group ...

  2. JS写法 数值与字符串的相互转换 取字符中的一部分显示 正则表达规则

    http://www.imooc.com/article/15885 正则表达规则 <script type="text/javascript"> </scrip ...

  3. 第五章HTML

    HTML介绍 标签:有一个头,一尾 <!DOCTYPE html><html lang="en"><head> <!-- 文档的标题.编码 ...

  4. cordova本地浮动框提示插件使用:cordova-plugin-x-toast

    1. 添加插件:cordova plugin add cordova-plugin-x-toast 2. 调用方法(浮动提示插件,弹出本地浮动提示框): $cordovaToast.show(mess ...

  5. PythonStudy——PyCharm使用技巧 Column Selection Mode(列选择模式)

    PyCharm的Column Selection Mode提供了列选择功能. 使用: 在当前文件右键->Column Selection Mode->用鼠标垂直选择文本 快捷键:Alt + ...

  6. salt+jenkins+gitlab+ecs构建公司部署平台

    1.网络架构图如下 2.采用这种方案的原因 1.现网机器都在各个省机房内网,或者堡垒机内部.无法直接从公司总部ssh到各个现网机器 2.现网机器可以访问到公网.因此可以从公网下载制作的tar包 3.每 ...

  7. MySQL innobackupex全量备份恢复

    转自 http://blog.itpub.net/27099995/viewspace-1295099/ 先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup ...

  8. git代理配置

    命令行模式下配置 git config --global https.proxy https://proxyuser:proxypassword@ip/域名:port git config --glo ...

  9. 《我的嵌入式开发》---- IIC 通信

    IIC 通用文件,文件是在NRF51xx 芯片基础,keil 平台开发测试通过,后期修改为STM32F2xx系列的配置. 文件百度云盘链接 : https://pan.baidu.com/s/1AFx ...

  10. HTTP 客户端接收数据超时

    本文使用两种方式测试HTTP 客户端读数据超时的情况,一种是直接使用golang自带的http库,另一种是使用martini web框架. 1. 测试1--直接使用http库 1.1.启动server ...