一、DIV布局按照定位的方法分为:浮动方法(float),坐标定位方法(position),还有就是两者相结合的方法。

二、DIV布局按照定义单位的不同可分为:固定宽度布局、流体布局、弹性布局和混合布局。

 固定宽度布局是将宽度用像素单位定义,它的宽度总保持不变,也被成为“冰布局”。

  它的缺点是由于宽度固定,无论浏览器窗口尺寸有多大,它的尺寸也不变,无法充分利用空间。

  当浏览器窗口变小时,会出现水平滚动条。这些缺点可以用其他两种布局方法解决。

  流体布局的单位是用百分比控制的,不是像素。这使流体布局能够相对于浏览器的窗口进行伸缩。

  当窗口变大,列变宽,相反,窗口变小,列的宽度也减小,这种布局方法可以有效的利用空间。

  当然,它也不是没有缺点,当窗口变小时,流体布局中的字体就会挤到一起,很难看清。这种问题可以用弹性布局方法解决。

弹性布局是用相对于字号来设置元素宽度的,而不是浏览器的宽度,通过用em为单位设置宽度,可以让字号增加时整个布局随之扩大。

  但它的缺点和固定宽度布局相同,不能很好的利用可用空间,而且在字体过大时,列宽度也会随之变大,导致浏览器中出现滚动条。

混合布局顾名思意就是将集中布局方法组合起来使用,取各自之所长,这方面的例子我还没有做过,大家可以经过学习自己摸索,万变不离其踪,方法只有这几种,全看自己怎么应用了。

  布局方法有的宽度单位运用的是像素,有的是百分比,这两种都有各自的优缺点,百分比的布局更适应浏览器窗口大小变化时产生的差异,可以充分利用空间,但当浏览器窗

口过小时,内容会变得太窄。

  另外一种布局方法可以解决这个问题,它就是弹性布局。弹性布局是用相对于字号来设置元素单位的,而不是浏览器的宽度。

  通过以em为单位设置宽度,可以确保在字号增加时整个布局随之扩大。

现在我们做个两栏布局例子,将所有像素宽度转换为使用em为单位的弹性布局。

主要技巧就是设置基础字号,让1em大致相当于12像素(一般做页面时用到的字号),这时需要利用到浏览器默认字体的相关知识。大多数浏览器的默认字号是16像素,12像素大约是16像素的75%,所以将页面上的字号设置为75%

    body {
font-size:%
}

 

下面将CSS中的固定宽度转换为弹性布局:

body {font-size:%;margin:0px;background:#FFF;color:#;} /*页面层容器*/
#wrap {width:75em;clear:both;} /*页面头部*/
#Header {clear:both;height:.3em;background:#FFCC99;} /*页面主体*/
#PageBody {clear:both;height:.3em;background:#CCFF00;}
#Sidebar {width:.7em;float:left;}
#MainBody {width:.3em;float:right;height:%;background:#EEE;} /*页面底部*/
#Footer {clear:both;height:.2em;background:#00FFFF;}

Html不做修改,还保持以下结构:

<div id="wrap"><!--页面层容器-->
<div id="Header">页面头部</div>
<div id="ageBody"><!--页面主体-->
<div id="Sidebar">侧边栏</div>
<div id="MainBody">主体内容</div>
</div>
<div id="Footer">页面底部</div>
</div>

在常规文本字号时,页面中的布局和原来基本相似,但当页面中的字体变大时,布局就会随之变大了,缩小时亦然。

使用em为单位制作两列弹性布局的更多相关文章

  1. css 两列自适应布局的4种思路

    前面的话 前面已经介绍过css 两列布局中单列定宽单列自适应布局的6种思路的两列布局,而两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式.本文将从float.table.flex和gri ...

  2. css两列自适应布局的多种实现方式及原理。

    两列布局是非常常见的需求在实际项目中,实现的方式也有很多.究其原理也都不算复杂.这里主要提出几种实现方式和原理. html页面基本布局如下代码所示: 1 <div class="mai ...

  3. ch8 基于浮动的布局(两列浮动布局、三列浮动布局)

    CSS布局技术的根本是3个基本概念:定位.浮动.外边距操纵. 只需要设置希望定位的元素的宽度,然后将它们向左或向右浮动.因为浮动的元素不再占据文档流中的任何空间,它们就不再对包围他们的块框产生任何影响 ...

  4. 使用display:table实现两列自适应布局

    在张鑫旭大神那边看到的方法,我自己写了一遍,稍微添加了一些自己的风格特色. IE6/7不支持这个属性,从IE8开始支持这个属性,对于IE6/7可以用display:inline-block解决. ta ...

  5. CSS3中的弹性布局——"em"的用法

    使用CSS也好久了,但一直都是在使用“px”来设置Web元素的相关属性,未敢使用“em”.主要原因是,对其并不什么了解,只知道一点概念性的东西,前段时间在项目中要求使用“em”作为单位设置元素,所以从 ...

  6. CSS中的EM属性之弹性布局

    这篇教程将引导大家如何使用“em”来创建一个基本的弹性布局,从而学习其如何计算?又是如何使用“em”对层进行弹性扩展?又是如何扩展文本和图像等内容?下在我们就一起带着这些问题开始今天的“em”之行. ...

  7. 慕课笔记利用css进行布局【两列布局】

    <html> <head> <title>两列布局</title> <style type="text/css"> bo ...

  8. CSS读书笔记(1)---选择器和两列布局

    (1)CSS选择器优先权选择. 优先权从大到小的选择如下: 标有!important关键字声明的属性 HTML中的CSS样式属性 <div style="color:red" ...

  9. ch8 固定宽度、流式、弹性布局

    假设浏览器窗口设置为1250px:wrapper的宽度为960px:content的宽度为920px:确保了wrapper居中时两边有20px的间距:  secondary的宽度为230px:  pr ...

随机推荐

  1. spss modeler出现使用错误提

    spss modeler出现使用错误提 1.对字段"compensation汇总导出"指定的类型不充分 问题: 为了分析需要,我加了一个"字段选项"--&quo ...

  2. 同步+TASK异步请求

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. hive 总结四(优化)

    本文参考:黑泽君相关博客 本文是我总结日常工作中遇到的坑,结合黑泽君相关博客,选取.补充了部分内容. 表的优化 小表join大表.大表join小表 将key相对分散,并且数据量小的表放在join的左边 ...

  4. day 80 Vue学习一之vue初识

    Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js框架 ...

  5. 02_mybatis开发dao的方法

    MyBatis开发dao的方法 1. SqlSession使用范围 1.1 SqlSessionFactoryBuilder ​ 通过SqlSessionFactoryBuilder创建会话工厂Sql ...

  6. P3338 [ZJOI2014]力 /// FFT 公式转化翻转

    题目大意: https://www.luogu.org/problemnew/show/P3338 题解 #include <bits/stdc++.h> #define N 300005 ...

  7. 新安装一个eclipse,导入一个web项目,右键点击项目选择Properties,找不到project facets和Server选项。

    解决方式: 1.点击:eclipse导航栏中点击Help->Install New Software 2.点击Add添加 3在弹出框中填写以下信息 name:keep(名字随便取) locati ...

  8. Java虚拟机性能管理神器 - VisualVM(2) 入门【转】

    Java虚拟机性能管理神器 - VisualVM(2) 入门[转] 标签: java插件jvm监控工具入门 2015-03-11 16:54 955人阅读 评论(0) 收藏 举报  分类: Visua ...

  9. Mysql的数据列类型效率

    1.    能短就不要长.(磁盘I/O少一些) 比如固定 长度的CHAR数据列,定义 CHAR(40),而不是 CHAR(255); 比如MEDIUMINT代替BIGINT,数据表就小一些, 值的处理 ...

  10. 第一个duilib程序 - 实现HelloWorld详解

    duilib是一个windows下的皮肤库,用win32写的... 先看个效果图吧: 要使用duilib库,必须先把库导入,代码如下: View Row Code 1 #include "x ...