千锋教育-做有情怀、有良心、有品质的IT职业教育机构

位置:首页 > 行业动态

HTML5设计之CSS布局模型讲解

时间:2017-11-24 16:45:21  |  来源:千锋教育  |  作者:千锋讲师

  CSS是一门计算机语言,它是修饰网页结构的一门计算机语言,页面的美观全凭CSS,而布局模型和定位技术是CSS中比较重要的部分,是页面布局的核心技术,不论是常见的PC端页面,还是移动端页面都离不开我们的布局模型和定位技术。

  千锋哈尔滨HTML5培训课程,深入分析CSS布局模型,帮助你学习html。

  CSS包含3种基本的布局模型:

  1、流动模型(Flow);

  2、浮动模型 (Float);

  3、层模型(Layer);

  一、流动模型(flow)

  流动模型(Flow)是默认的网页布局模式,也就是网页在默认状态下HTML网页元素都是根据流动模型来分布网页内容的。

  流动布局模型有两个比较典型的特点:

  点:在默认状态下块状元素都会自上而下的分布,独占一行,块状元素的宽度都为100%,两个相邻的块元素会在不同行显示,常见的块状元素有:div,p,ul,ol,li,h1- h6,dl,dt,dd,table,section,nav,footer,header,article等。如下代码是流动模型下多个块元素的代码。

01.png

  效果图:

02.png

  第二点:在流动模型下,内联元素都会从左到右水平方向显示,常见的内联元素有:a,span,b,strong,i,em,del,img,input,textarea,mark,sub,sup等。如下代码是流动模型下多个内联元素的代码结构。

03.png

  效果图:

04.png

  二、浮动模型(float)

  浮动模型是完全不同于流动模型的另一种布局模型,它遵循浮动规则,同样流动模型仍对浮动模型有潜在影响。为什么会有浮动模型呢?

  块状元素独占一行,如果在我们的页面布局里想让两个或两个以上的块状元素并排显示,怎么办呢?设置元素浮动就可以实现这一效果。任何元素在默认情况下是不能浮动的,但可以通过CSS定义为浮动,如div、h1、P、table等元素都可以被定义浮动。如下代码可以实现两个div元素在同一行显示的效果。

05.png

  效果图:

06.png

  同样我们也可以同时设置两个元素右浮动来实现多个元素一行显示的效果;

07.png

  效果图:

08.png

  换另一种方法,我们也可以设置两个元素的一左一右浮动来实现两个或两个以上的元素在一行显示的效果;

09.png

  效果图:

10.png

  三、层模型(Layer)

  层布局模型首先有个层的概念,像我们PhotoShop中的图层编辑功能一样,每个图层能够精确定位操作,但在页面布局里,由于页面大小的活动性,层布局模型没能受到大面积的使用。但是在页面上的局部,使用层布局模型还是很常见的。

  说到层布局模型,就要说到定位的属性position。

  定位属性(position)的属性值有四种:

  1、默认值(position: static) 静态定位,元素出现在正常的文档流中;

  2、定位(position: absolute);

  3、相对定位(position: relative);

  4、固定定位(position: fixed);

  定位:

  如果想为元素设置层布局模型中的定位,需要设置position:absolute;这条声明的作用是将元素从文档流中拖离出来,然后使用left、right、top、bottom属性相对于其接近的一个并具有定位属性的父级包含块进行定位。如果不存在这样的包含块,则相对于html根元素来做定位。

  如下面代码可以实现div元素相对于html根元素向右移动150px,向下移动100px。

11.png

  效果图:

12.png

  如果存在一个有定位设置的父级元素,那么我们的定位的元素会就会相对其接近的一个并有定位设置的父级元素做定位。

  如下面代码可以实现P元素相对于div元素向右移动50px,向下移动50px。

13.png

  效果图:

14.png

  相对定位:

  如果想为元素设置层布局模型中的相对定位,需要设置position:relative;这条声明的作用是将元素在正常文档流中偏移位置,使用left、right、top、bottom属性相对于其元素自身的以前的位置进行移动,但偏移前的位置保留不动。

  如下代码实现相对于元素自身以前位置向下移动100px,向右移动100px;

15.png

  效果图:

16.png

  元素本身是相对以前的位置进行偏移了,但偏移前的位置保留不动,也就是说元素偏移后所空出来的位置是不允许被其它元素占据,同样偏移的元素本身还是占据自己原来的位置。

  我们在相对定位的元素后边加了段落标签P,并在P标签里写入一些内容。

  代码如下:

17.png

  效果如下:

18.png

  从效果图中可以看出,虽然div元素相对于以前的位置进行了偏移,但是div元素以前的位置还是保留着,所以后面的P标签是显示在了div元素以前位置的后面。

  固定定位:

  如果想为元素设置层布局模型中的固定定位,需要设置position:fixed;这条声明的作用是将元素在正常文档流脱离出来,使用left、right、top、bottom属性相对可视窗口(屏幕内的网页窗口)进行位置的偏移。所以固定定位的元素不会随浏览器窗口的滚动条滚动而变化,除非在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流的影响

  如下代码实现相对于浏览器可视窗口向左移动50px,向上移动50px。

19.png

        效果如下:

16.png

  从效果图中可以看出,固定定位的元素相对于浏览器的可视窗口进行偏移,不会受文档流的影响,同样也不会随浏览器窗口的滚动条滚动而变化。

  以上是层模型中的重要的一个属性“定位”,在层模型中各元素可能出现层叠。层叠顺序可以用z-index控制,z-index属性值越大,层的顺序越靠上。z-index属性值相同时,根据HTML的结构,靠后的元素层的顺序在上。

  如下代码实现两个具有定位属性的元素的正常层叠关系:

21.png

  效果如下:

22.png

  如下代码实现两个具有定位属性的元素设置了z-index属性后的上下层叠关系:

21.png

  效果如下:

22.png

  以上是对整个布局模型进行了详细的概述,包括布局模型里涉及到的相关属性。以下是布局模型的相关案例展示:

 

 

上一篇:哈尔滨Java培训哪家好,首屈一指就是千锋
下一篇:哈尔滨html5培训哪家好

新开班信息

  • HTML5班 03.26 抢座
    HTML5班 10.30 开班

锋神榜

MORE>>
  • 徐帅

    学员姓名:徐同学
    入职单位:枭*科技
    入职月薪:11000
    时间:2016.05.26
     

  • 潘玉珠

    学员姓名:潘同学
    入职单位:酷*互动
    入职月薪:13000
    时间:2016.05.20
     

  • 张子豪

    学员姓名:张同学
    入职单位:斑*实业
    入职月薪:14000
    时间:2015.12.08
     

  • 黄伯驹

    学员姓名:黄同学
    入职单位:福*中金
    入职月薪:12000
    时间:2015.12.07
     

  • 韩庆

    学员姓名:韩同学
    入职单位:宽*是风
    入职月薪:17000
    时间:2015.09.17
     

  • 郑大哲

    学员姓名:郑同学
    入职单位:腾*众创
    入职月薪:16500
    时间:2015.11.02
     

  • 钱学明

    学员姓名:钱同学
    入职单位:数*科技
    入职月薪:16000
    时间:2015.11.04
     

  • 孙建刚

    学员姓名:孙同学
    入职单位:快*
    入职月薪:14000
    时间:2015.06.12
     

  • 郭立辉

    学员姓名:郭同学
    入职单位:本*生活网
    入职月薪:14000
    时间:2015.10.08
     

  • 张学超

    学员姓名:张同学
    入职单位:泰*集团
    入职月薪:13800
    时间:2015.06.11
     

哈尔滨校区咨询电话

17710405956
0元入学 获取资料 申请试听
  • 大连地址:大连市甘井子区软件园路2号B8座二楼
    咨询电话:0411-39026086 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 北京天丰利校区:北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-65025129-602
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训、好程序员
  • 郑州地址:郑州市金水区纬五路21号河南教育综合楼(经纬中学楼)6/7/8层
    咨询电话:0371-55911950 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 深圳科技园校区:深圳市南山区科苑南路高新技术产业园R3-B栋5层
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋3楼
    深圳西部硅谷校区:深圳市宝安区宝安大道5010号西部硅谷B座A605-619
    咨询电话:0755-86681178/9-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 武汉地址:武汉市东新区光谷大道77号金融港B26栋9楼
    咨询电话:027-59905902 027-59905908 027-59905909
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 成都旅游校区:成都市一环路西二段17号四川旅游青羊校区内
    成都华立校区:成都一环路西二段17号华立大厦3楼
    咨询电话:028-83178771 028-61967740
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 西安南二环校区:西安市二环南路西段60号永安大厦4层
    西安科技园校区:西安市雁塔区高新六路52号立人科技园C座西区4层
    咨询电话:029-85260160 029-85261030 029-85260960
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 杭州地址:浙江江干区九堡旺田书画城3层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS课程培训、Android课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A四层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 了解千锋动态
    关注千锋教育服务号

  • 扫码匿名提建议
    直达CEO信箱