position:static(静态定位)
    当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置
podisition定位问题。所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置。
position:absolute(绝对定位)
    当position属性定义为absolute时,元素会脱离文档流,完全不受文档流的影响,根据某个参照物坐标来定位它的位置.当绝对定位元素没有显示的指明top,right,bottom,left定位属性时,它还是暂时未脱离文档流,并受文档流的影响,具有相对定位的特性,但是它在文档流中的位置已经不存在了。如果绝对定位只显示的定位x轴或者Y轴,那它只具备这个方向上的定位能力,另一个方向仍然显示为相对定位的特性。
坐标值:
top:表示定位元素顶边外壁到参照物元素顶部内壁的距离
right:表示定位元素右边外壁到参照物元素右侧内壁的距离
left:表示定位元素左边外壁到参照物元素左侧内壁的距离
bottom:表示定位元素底边外壁到参照物元素底部内壁的距离
<div id="box">box
<div id="boxA">boxA</div>
<div id="boxB">boxB
<div id="boxC">boxC</div>
<div id="boxD">boxD</div>
</div>
</div>
#box{
margin:40px auto;
width:400px;
height:400px;
border:2px red solid;
}
#boxA{
position:absolute;
top:100px;
left:100px;
width:50px;
height:50px;
background: #3E7DB0;
}
大盒子box在整个网页中距顶部40px居中显示,但是boxA由于position定位为绝对定位,它脱离了大盒子,距整个网页左边100px顶部100px,当元素定义为绝对定位,可以根据结合它的坐标属性(top,left,bottom,right)来精确定位它的位置
position:relative(相对定位)
相对定位好似一种折中的方法,是在静态定位和绝对定位中去一个平衡点,所谓相对定位就是使被应用的元素不脱离文档流,却能够通过坐标值以原始位置为参照物进行偏移。
坐标值:
top:表示定位元素顶边外壁到原始位置顶部外壁的距离
right:表示定位元素右边外壁到原始位置元素右侧外壁的距离
left:表示定位元素左边外壁到原始位置元素左侧外壁的距离
bottom:表示定位元素底边外壁到原始位置元素底部外壁的距离
 <div id="box">
<div id="boxA">boxA</div>
<div id="boxB">boxB
<div id="boxC">boxC</div>
<div id="boxD">boxD</div>
</div>
</div>
#box{
margin:40px auto;
width:400px;
height:400px;
border:2px red solid;
}
#boxA{
position:relative;
top:100px;
left:100px;
width:50px;
height:50px;
background: #3E7DB0;
}
#boxB{
width:50px;
height:150px;
background: #B9C8C5;
}
#boxC{
width:50px;
height:50px;
background: #1D92C8;
}
#boxD{
width:400px;
height:50px;
background: #086499;
}
大盒子box在整个网页中距顶部40px居中显示,当元素boxA由于position定义为相对定位,相对于它本身的位置的位置进行偏移,据原先的位置左100px和顶部100px,当遇到文档流boxD时,它会覆盖boxD。相对定位虽然偏离了原始位置,但是它的原始位置所占据的空间仍然保留着,并没有被其它元素所占据。
position:fixed(固定定位)
固定定位是绝对定位的一种特殊形式,它是以浏览器窗口作为参照物来定义网页元素,如果定义某个元素固定显示,则该元素不在受文档流的影响。他始终以浏览器窗口来定位自己显示的显示位置,不管浏览器窗口如何滚动,也不管浏览器窗口大小如何变化,该元素都会显示在浏览器窗口内。通俗的说就是以浏览器窗口的四条边作为坐标系来定位元素的位置。
 <div id="box">box </div>
<div id="fixed">fixed</div>
 #box{
margin:40px auto;
width:400px;
height:400px;
border:2px red solid;
position:fixed;
left:100px;
top:100px;
}
#fixed{
height:4000px;
}
当把box定义为固定定位时,box永远都是在浏览器窗口内,fixed属性还可通过left,right,top,bottom来控制从流浪器不同边框来进行定位。
相对定位(relative)与绝对定位(absolute): 
<div id="box">box
<div id="boxA">boxA</div>
<div id="boxB">boxB
<div id="boxC">boxC</div>
<div id="boxD">boxD</div>
</div>
</div>

如果box把 position属性定义为relative,只有它的子元素boxA和boxB position属性定义为absolute才能相对box定位,而他的孙子元素boxC和boxD把position定义为absolute并不能相对box来定位。但是如果把boxB的position属性定义为relative,它底下的子元素boxC和boxD就能相对于父元素boxB来定位,所以,把position属性定义为relative的元素,只有它的子元素才能相对它定位,孙子元素并不能相对它定位。相对定位与绝对定位的结合使用可以更加精确的控制网页元素,设计出更强大的布局效果。

position属性定位小工具:www.linxz.de/css_tool/position_demo.html
层叠:
css可以通过z-index属性来排列不同定位元素之间的层叠顺序,该属性可以设置任何整数值,数值越大,所排列的顺序越靠前。
  <div id="box">box
<div id="boxA">boxA</div>
<div id="boxB">boxB</div>
<div id="boxC">boxC</div>
</div>
 #boxA,#boxB,#boxC{
width:100px;
height:200px;
position:absolute;
}
#boxA{
background: #086499;
z-index:;
left:100px;
}
#boxB{
top:50px;
left:50px;
background: #B9C8C5;
z-index:;
}
#boxC{
top:100px;
background: #1D92C8;
z-index:;
}

boxC排在最上面,boxB在最中间,boxA在最后。z-index的值越大越靠前。

第一次写博客,写的不好,请各位看官多多指正。

CSS定位与层叠的更多相关文章

  1. 深入理解CSS中的层叠上下文和层叠顺序(转)

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=5115 零.世间的道 ...

  2. 深入理解CSS中的层叠上下文和层叠顺序

    零.世间的道理都是想通的 在这个世界上,凡事都有个先后顺序,凡物都有个论资排辈.比方说食堂排队打饭,对吧,讲求先到先得,总不可能一拥而上.再比如说话语权,老婆的话永远是对的,领导的话永远是对的. 在C ...

  3. [转]深入理解CSS中的层叠上下文和层叠顺序

    http://www.zhangxinxu.com/wordpress/2016/01/understand-css-stacking-context-order-z-index/ 零.世间的道理都是 ...

  4. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  5. html5--6-33 CSS定位是什么

    html5--6-33 CSS定位是什么 一.总结 一句话总结: 1.常规文档流是一套体系,浮动是另外一套体系. 2.标签清除浮动之后会跑到常规文档流它本来的地方. 3.浮动是否占据常规文档流:应该不 ...

  6. css定位的理解

    在CSS中关于定位的内容是:position:relative | absolute | static | fixed ● static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行 ...

  7. CSS定位布局

    CSS定位布局 基础知识 在CSS布局中,定位布局也是一种非常常见的技术手段,我们以京东为例: 上面是非常好的例子,对于定位布局来说它可以将一个元素放在页面上的任意一个位置. 但是定位布局也不能滥用, ...

  8. css定位

    文档流 所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版 ...

  9. 常用的CSS定位,XPath定位和JPath定位

    CSS定位 举例 描述 div#menu id为menu的div元素 div.action-btn.ok-btn class为action-btn和ok-btn的div元素 table#emailLi ...

随机推荐

  1. ios-html-get/post差额,简而言之(MS)CheckST

    get直接采取拉数据,post注射剂server.至server安全或使用get 而且由于get明确传递,password帐户A眼可以看得出来,甚至加密也可以很easy解,所以传password用po ...

  2. hdu2377Bus Pass(构建更复杂的图+spfa)

    主题链接: 啊哈哈,点我点我 思路: 题目是给了非常多个车站.然后要你找到一个社区距离这些车站的最大值最小..所以对每一个车站做一次spfa.那么就得到了到每一个社区的最大值,最后对每一个社区扫描一次 ...

  3. Paint获取Text的宽和高的数据

    获取字符串的宽度: public static float GetTextWidth(String text, float Size) { // 第一个参数是要计算的字符串,第二个参数是字提大小 Te ...

  4. Mybatis深入之事务管理

    Mybatis之事务管理 简单介绍 Mybatis的事务管理分为两种JdbcTransaction.ManagedTransaction. 当中JdbcTransaction仅仅是对数据库连接Conn ...

  5. 有人实践过 Phabricator 以及 Arcanist 作为 code review 的工具么?(转)

    作者:覃超链接:http://www.zhihu.com/question/19977889/answer/13539702来源:知乎 平时就经常实践. 整个公司的code review就是使用这个. ...

  6. Intel® Ethernet Connection I217-V 网卡驱动(win10 ,2012)

    https://downloadcenter.intel.com/zh-cn/download/25016/-Windows-10 上面是win10 的驱动 win8.1  https://downl ...

  7. 如何在 Swift 中优雅地处理 JSON

    阅读目录 在Swift中使用JSON的问题 开始 基础用法 枚举(Enumeration) 下标(Subscripts) 打印 调试与错误处理 后记   因为Swift对于类型有非常严格的控制,它在处 ...

  8. MS Open Tech 技术团队构建可靠的Windows版Redis

    可靠的Windows版Redis 副标题: 评论更精彩,教你怎么解决64位Windows版Redis狂占C盘的问题. MS Open Tech 技术团队最近花了很多时间来测试最新构建的Windows版 ...

  9. 【微信公众平台开发】百度周边搜索接口php封装

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWl2YW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  10. JQuery EasyUI学习框架

    前言 前端技术,新项目的开发拟使用EasyUI框架(基于EasyUI丰富UI组件库),项目负责人的提示EasyUI分配给我这个任务.发展前,我需要这对于一个新手EasyUI框架学习一些基本的入门.记录 ...