介绍

几个实现多栏布局的方法。主要介绍使用内部div来创建浮动的栏。

多栏布局有三种基本的实现方案:固定宽度、流动、弹性。

  1. 固定宽度布局的大小是随用户调整浏览器窗口大小而变化,一般是900至1100像素宽。其中960像素是很常见的,因为这个宽度适合所有的现代浏览器,而且能被16、12、10、8、6、5、4和3整除,不仅容易计算等宽分栏的数量,而且计算结果也是么有小数的像素数。
  2. 流动布局的大小会随着用户调整浏览器的窗口大小而变化。这种布局能够很好的适应大屏幕,但是同时 也意味着放弃对页面某些方面的控制,比如随着页面的变化,文本行的长度和页面元素之间的位置关系可能会发送变化。现在越来越多的浏览器都支持CSS媒体查询了,这就让基于浏览器窗口宽度提供不同的CSS样式成为可能。在这种形势下,适应各种屏幕宽度的可变固定布局,正逐步取代流动布局。这种可变的固定布局能够适应最大和最小的屏幕,业界称之为响应式设计。
  3. 弹性布局和流动布局类似,在浏览窗口变化时,不仅布局会变,而且内容元素的大小也会发生变化。

在实际的创建页面之前,先说一下布局的高度和宽度。

布局高度,大多数情况下,布局高度都不需要设定。以便元素的高度随着内容的增加而在垂直方向上扩展。这样扩展的元素会把下面的元素向下推,而布局也能随着内容的增减而垂直伸缩。

布局宽度,与高度不同,我们需要精准的控制布局宽度,以便随着浏览器窗口宽度的合理变化,布局能够做出适当的调整,确保文本行不会过长或者过短。即使必须设定宽度,也不要给包含在其中的元素设定宽度,应该让这些内容元素自动扩展填满栏的宽度。

三栏布局

构建一个简单的三栏布局页面。
.left{
width: 15%;
float: left;
background-color: red;
height: 300px;
}
.middle{
width: 70%;
float: left;
background-color: blue;
height: 300px; }
.right{
width: 15%;
float: left;
background-color: yellow;
height: 300px;
}

*为了直观我们都设定高度为300px。

为了让内容与栏边界拉开距离。为栏添加水平外边距和内边距。会导致又变的栏浮动下滑。在栏中添加大图片,或者没有空格的长字符串,也会导致栏宽超过布局宽度。同样会导致右侧的栏向下滑动。
有三种解决方案:
  • 从设定的元素宽度中减去水平的外边距,边框和内边距的宽度和。这个方法虽然可行但是每次调整内外边距就要重新设置布局宽度。
  • 在容器内部的元素上添加内边距和外边距。与其为容器中的元素添加外边框,不如在栏中添加一个没有宽度的div,让它包含所有的内容元素,然后再给这个元素添加边框和内边距。如此只需为内部div设置一次样式,jiukeyhi让所有的元素与栏边距保持一致。而且将来在调整时也很方便,任何新增元素的宽度都由这个内部div决定。
  • 使用CSS3的box-sizing属性切换盒子的缩放方式。比如  section {  box-sizing  :border-box ; }.,再给栏添加内外边距就不会导致盒子的宽度发生变化了。但是IE6和IE7不支持box-sizing属性。不过有个脚本专门解决这个问题,名叫 borderBoxModel.js。




版权声明:本文为博主原创文章,未经博主允许不得转载。

CSS-页面布局的更多相关文章

  1. CSS 页面布局、后台管理示例

    CSS 页面布局.后台管理示例 页面布局 1.头部菜单 2.中间内容/中间左侧菜单 3.底部内容 <div class='pg-header'> <div style='width: ...

  2. css页面布局

    写在前面: 页面布局整体上可以分为两类:固定宽度(一般固定960px):流式布局:将流式布局转换为固定布局很容易,只需要外围再包括一个div,为其设置宽度即可. html默认的布局方式是将每个块状标签 ...

  3. CSS页面布局常见问题总结

    在前端开发中经常会碰到各种类型布局的网页,这要求我们对css网页布局非常熟悉.其中水平垂直居中布局,多列布局等经常会被使用到,今天就来解决一下css布局方面的问题. 水平垂直居中的几种方法 说到水平垂 ...

  4. css页面布局总结

    W3C标准:是万维网制定的一系列标准,包括结构化标准语言(html.xml),表现 标准语言(css),行为标准语言(DOM,ECMAScript<javascript>)组成.这个标准倡 ...

  5. CSS页面布局与网格(上)

    1.布局规划 1.1 网格 网格系统是设计师在切分布局时作为参照的一组行和列. 1.2 布局辅助类 类名用于为布局添加样式.为了让样式可以重用,让类名表达其意图. .column { /* 一般列的样 ...

  6. 第6天:DIV+CSS页面布局实战

    今天我从早上9:00写代码一直写到下午18:00,写的我差点抑郁了,还好最后终于写出了一个完整页面,没有做动画效果,就是练习了一下DIV+CSS布局,做的是福务达(www.zzfwd.cn)的主页,真 ...

  7. 一、CSS概述 二、CSS的选择器(认识) 三、CSS样式和属性(练习) 四、重构商城首页DIV+CSS(页面布局)(重点) 浮动/更改显示方式

    一.CSS概述###<1>概念 DIV,就是一个HTML元素,块级元素,通常结合CSS进行页面的布局. CSS,层叠样式表,给HTML元素增强显示. ###<2>作用 样式定义 ...

  8. 3种常见的CSS页面布局--双飞翼布局、粘连布局、左右两列布局

    一.左右两列布局 1.代码如下,可先粘贴复制,自行运行 <!DOCTYPE html><html> <head> <meta charset="UT ...

  9. dic+css页面布局分享

    HTML部分代码<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  10. 第五章 CSS页面布局基础

    1.标准文档流 在正常流中,在没有使用浮动或者定位的情况下,文本元素按照从上到下.从左到右的格式布局.这是浏览器的默认行为.在正常流中,块级元素从上到下依次排列,而行级元素从左到右依次排列.正常流中的 ...

随机推荐

  1. qsort函数用法【转】

    qsort函数用法 qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(con ...

  2. 通过前台选择输入用来计算圆,三角形以及长方形的面积(此题目主要是while以及if 的使用)

    #!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现计算圆面积,三角形面积,长方形面积'''flag=Truewhile flag: pi ...

  3. loose coupling之函数签名

    当函数的参数有多个时(比如多于4个),可以考虑将这些参数组织放入一个class(struct),然后函数参数就减少为一个. 1.以class instance来穿参数,可以很容易在各个函数之间传递参数 ...

  4. MySQL管理_数据库启动与关闭

    MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆.通常启动mysql服务器即是启动mysqld进程,mysqld启动后,可以通过mys ...

  5. IE10、IE11解决不能播放Flash的问题!

    http://jingyan.baidu.com/article/154b46315421b528ca8f41e4.html ie的问题向来是windows系统的传统问题之一.几乎每个版本的windo ...

  6. Shell 显示带颜色字体

    格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码"如果单纯显示字体颜色可以固定控制码位0m.格式: echo "/033[字背景颜色;字体颜色m ...

  7. Redis应用场景

    Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的 ...

  8. iOS 关于GCD中的队列

    GCD中队列分类及获得方式 1.串行队列  dispatch_queue_t queue = dispatch_queue_create("队列名", DISPATCH_QUEUE ...

  9. [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF

    一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢!   二.具体说明: 首先要明白”范 ...

  10. linux后台进程管理工具supervisor

    Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启. su ...