请珍惜小编劳动成果,该文章为小编原创,转载请注明出处。

摘要:

CSS3相对CSS2增加了一些新的布局方式:多栏布局和盒子布局。在这篇文章中,将对CSS2的布局进行简单的回忆,并总结CSS3的布局方式。

DIV+CSS其实是错误的叫法

关于当前的页面布局,很多人都习惯于叫做DIV+CSS,其实这是一种错误的叫法,标准叫法应该叫做XHTML+CSS.
这是为什么呢?传统的页面布局采用的是Table布局,即Table+CSS,后来出现了使用DIV的布局方式,所以人们就把它叫做DIV+CSS,而且有些人认为用DIV+CSS制作的页面才是标准页面,其实这句话是比较狭隘的。
那什么是标准页面呢?WEB标准由结构,表现和行为三部分组成。其中结构话标准语言是XHTML和XML,表现化标准语言是CSS。因为XML比较复杂,大多数浏览器都没有完全支持,故不使用XML来实现页面布局,所以标准的页面布局应该是符合WEB标准的页面布局,即XHTML+CSS。
而XHTML中不仅仅只有DIV标签,还有a,p,ul,li,dl,dt等等标签,所以即使不使用DIV标签,制作的页面也是标准页面,XHTML的各个标签都有其功能,并不是说只能用DIV去实现页面布局(在一本书上有怎么一句话:如果满屏都是DIV,那也算不上标准页面了)
所以说,以后我们要尽可能的说XHTML+CSS,而不是DIV+CSS.

CSS2时代的布局方式

简单点说,CSS2时代是使用float的浮动属性来实现布局的。
layout.css
/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{
width:80%;
height:100%;
margin-left:10%;
margin-right:10%;
background:#ABE0F1;
}
/*头部*/
#header{
width:100%;
height:15%;
margin:0px;
background:#FF0000;
}#logo{
float:left;    /*浮动属性,居左对齐,使其可以在同一行显示*/
width:60%;
height:80%;
margin:0px;
background:#E18CDD;
clear:left;     /*取消左侧浮动*/
}
#banner{
float:right;   /*浮动属性,居右对齐,使其可以在同一行显示*/
width:38%;
height:80%;
margin:0px;
background:#8376D8;
clear:right;    /*取消右侧浮动*/
}
#menu{
width:100%;
height:5%;
margin:0px;
background:#00FF00;
}
#pageBody{
width:100%;
height:70%;
margin:0px;
background:#00FFFF;}
#footer{
width:100%;
height:10%;
margin:0px;
background:#FFFF00;
}

layout.html

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/layout.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="header"><div id="logo">logo</div><div id="banner">banner</div>container</div><div id="menu">menu</div><div id="pageBody"></div><div id="footer">footer</div>
</div>
</body>
</html>

但是,使用float实现布局会有一些缺点,由于各个div是相互独立的,所以在一个div中加入一些内容后会使得无法对齐,CSS3提供了多栏布局和盒子布局来弥补这种缺点。

多栏布局

layout.css
/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{
width:80%;
height:100%;
margin-left:10%;
margin-right:10%;
background:#ABE0F1;
}
/*头部*/
#header{
width:100%;
height:15%;
margin:0px;
background:#FF0000;
}#logo{
float:left;    /*浮动属性,居左对齐,使其可以在同一行显示*/
width:60%;
height:80%;
margin:0px;
background:#E18CDD;
clear:left;     /*取消左侧浮动*/
}
#banner{
float:right;   /*浮动属性,居右对齐,使其可以在同一行显示*/
width:38%;
height:80%;
margin:0px;
background:#8376D8;
clear:right;    /*取消右侧浮动*/
}
#menu{
width:100%;
height:5%;
margin:0px;
background:#00FF00;
}
#pageBody{
width:100%;
height:70%;
margin:0px;
background:#00FFFF;
-moz-column-count:4;       /*多栏布局:火狐浏览器中需要的格式,表示列数*/
-moz-column-gap:10px;      /*列之间的间隔*/
-moz-column-rule:1px solid red;   /*在列之间加一条红色的线*/-webkit-column-count:4;    /*多栏布局:safari和chrome需要的格式*/
-webkit-column-gap:10px;   /*列之间的间隔*/
-webkit-column-rule:1px solid red;   /*在列之间加一条红色的线*/
}
#footer{
width:100%;
height:10%;
margin:0px;
background:#FFFF00;
}

layout.html

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/layout.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="header"><div id="logo">logo</div><div id="banner">banner</div>container</div><div id="menu">menu</div><div id="pageBody">内容省略</div><div id="footer">footer</div>
</div>
</body>
</html>

效果图:

盒子布局

hezi.css
/* CSS Document *//*基本信息*/
body{
margin:0px;  /*外边距*/
text-align:center; /*文字居中对齐*/
background:#E1D0BB;  /*背景色*/
}
/*页面层容器*/
#container{
display:-moz-box;
display:-webkit-box;
}
#left_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#FF0000}
#center_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#00FF00
}
#right_side{
width:200px;
height:200px;
margin:20px;
padding:50px;
background-color:#FFFF00;
}
#left_side,#center_side,#right_side{      /*实现盒子布局*/
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
#down_left{
-moz-box-flex:1;        /*可根据内容自动调整大小,实现弹性盒子,此为火狐下的格式*/
-webkit-box-flex:1;
padding:20px;
margin:20px;
background-color:blue;
}
#down_left{
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}

hexi.html

<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<title>布局</title>
<link href="style/hezi.css" rel="stylesheet" type="text/css" />
</head><body>
<div id="container"><div id="left_side">百度</div><div id="center_side">谷歌</div><div id="right_side">淘宝</div><div id="down_left">亚马逊</div>
</div>
</body>
</html>

效果图:

如果想要让盒子垂直分部,可以在将container改为:
#container{
display:-moz-box;
display:-webkit-box;
-moz-box-orient:vertical;   /*垂直分布*/
-webkit-box-orient:vertical;
}

这里仅给出了大致的布局方式,关于更多的属性,大家可以阅读相关的书籍和资料。

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

转载于:https://www.cnblogs.com/dingxiaoyue/p/4931792.html

玩转CSS3(一)----CSS3实现页面布局相关推荐

  1. CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  2. android页面布局 如何让中间的listview填充剩余部分_不使用css3:flex怎么实现一些常见的移动端布局...

    在外企银行工作,开发的app是混合应用.说实话国外银行功能确实没有国内银行多,而且技术比较守旧,就在去年上半年,没错,2018年上半年,我们的app还必须兼容安卓4.4,并且测试还会旧设备去测,这让我 ...

  3. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  4. 太原理工web课程答案——web程序设计课程答案 (第八章 CSS3页面布局)持续发布中——

    8.1.2 1[单选题] 在CSS中,为页面中的某个DIV标签设置样式div{width:200px;padding:0  20px;border:5px:},则该标签的实际宽度为( ) A. 200 ...

  5. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  6. CSS3与页面布局学习总结(四)——页面布局的多种方法

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  7. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法...

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  8. CSS3与页面布局学习总结(五)——Web Font与Sprite

    CSS3与页面布局学习总结(五)--Web Font与Sprite 目录 一.web font 1.1.什么是font-face 1.2.font-face优点 1.3.字体格式 1.4.使用@fon ...

  9. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset...

    CSS3与页面布局学习总结(二)--Box Model.边距折叠.内联与块标签.CSSReset 目录 一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizi ...

最新文章

  1. 数据结构之图的创建(邻接表)
  2. JavaScript——仿键盘打字输入动画效果DEMO
  3. 项目实施双机热备备忘
  4. 视频大时代下基础架构的演进
  5. github设置仓库可见性 私人仓库设置
  6. 限流神器Sentinel,不了解一下吗?
  7. 为什么程序员纷纷反对微软收购GitHub?
  8. Linux权限管理命令
  9. 台哥算法练习 - 自己写的一个LinkedList
  10. 20190914每日一句
  11. python基础: 序列
  12. oracle10g在win10上的安装
  13. 浅谈周大福的积分运营
  14. Oracle Data Guard官方说明
  15. 目前有哪些好用的测试管理工具?
  16. Android 扫码盒子全局接收付款码
  17. 10年过去,人们买不起旗舰机了
  18. ABAP-ITS Mobile
  19. vector容器用法详解
  20. 移动端地图导航路径规划文档

热门文章

  1. access month函数用法_学会了这7个EXCEL日期函数技巧,老板再让你加班,你找我!...
  2. python展开 c函数中的宏预处理_C中的预处理宏
  3. pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知
  4. python代码模板_python 代码模板
  5. 优化方案电子版_关于小区分支道路整修设计方案的讨论稿(No.2020121)
  6. shadows a parameter
  7. c#异常处理_C#中的异常处理
  8. kotlin键值对数组_Kotlin程序以升序对数组进行排序
  9. 在Python中使用OpenCV(CV2)对图像进行边缘检测
  10. python 导入自己写的类_python中自己的类不能被导入