CSS position

 
static

默认值,没有定位。元素框正常生成。块级元素生成一个矩形框,作为文档流(normal flow)的一部分,行内元素则会创建一个或多个行框,置于其父元素中。top,right,bottom,left,z-index属性无效。

    W3C这样描述:    

 z-index:
Only works on positioned elements(position: absolute;, position: relative; or position: fixed.  
          
relative

    元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
    relative就是对默认static定位的相对偏移,也就是说如果top、left都设0,那么此时的relative就跟static基本相同了,否则的话就在static的基础上进行相对偏移。relative的一个重要用处是给设置绝对定位的子元        素确定一个“父容器”。相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
 

absolute

    元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
 
 
总结:
  1. static是在normal flow中,原有的位置保留,top,right,bottom,left,z-index属性均无效,而在relative,absolute,fixed这些属性均有效。
  2. absolute,fixed均不在normal flow中,原有位置不保留,absolute与fixed的区别是包含块,前者的包含块是第一个非static的祖先元素,后者的的包含块是视窗本身。
  3. relative就是对默认static定位的相对偏移,在normal flow(非浮动)中,原有的位置保留。relative定位的层总是相对于其最近的父元素,无论其父元素是何种定位方式。

包含块

怎么确认一个元素的包含块?
  • 根元素:
    • 根元素包含块由用户代理建立。在html中,根元素是html 元素,有些浏览器的也会用body做为根元素。大多数浏览器中,初始包含块是一个视窗大小的矩形。
  • 非根元素:
    • relatice 、static:块级祖先元素
    • absolute:非static的祖先元素
    • float:块级祖先元素
    • Fixed:viewport
  • 如果找不到定位的祖先元素,包含块为初始包含块。
 
 

浮动

 

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

由于浮动框不在文档的普通流中,所以文档    的普通流中的块框表现得就像浮动框不存在一样。

浮动框特点:

  • 浮动会从正常的流中消失
    • 但是一个元素或图像浮动时,其它内容会环绕该元素。
  • 浮动元素的外边距不会合并。(BFC)
  • 浮动元素的包含块是其最近的块级祖先元素。
  • 浮动会生成块级框,无论这个元素原来是什么
  • 浮动的边界不会超过父边界,除了设置负外边距
  • 浮动的边界一定是另外一个浮动元素或父元素的边界.
  • 浮动不会重叠。(BFC)

Css定位总结的更多相关文章

  1. css定位

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

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

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

  3. div+css定位position详解

    div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局 ...

  4. CSS 定位

    一.CSS 定位和浮动   它们代替了多年来的表格布局.   定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置.   浮动在 CSS1 中被首次提出.浮动不完全是定位, ...

  5. Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

    加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...

  6. CSS定位小技巧

    CSS定位Static 默认定位Relative 相对定位:left 和topposition: relative;/*相对定位*/ left:40px;/*在原来的位置向右移动*/ top:100p ...

  7. (七)CSS定位(Positioning)

    CSS定位属性允许对元素进行定位. 一切皆为框: div.h1或p元素常被称为块级元素,而span和strong等元素成为行内元素,但是可是使用 display 属性改变框的类型,将display设置 ...

  8. CSS定位(CSS定位概述、相对定位、绝对定位、浮动)

    CSS 定位属性 CSS 定位属性允许你对元素进行定位. 属性 描述 position 把元素放置到一个静态的.相对的.绝对的.或固定的位置中. top 定义了一个定位元素的上外边距边界与其包含块上边 ...

  9. CSS定位(postion)和移动(float)

    5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...

  10. CSS定位属性Position详解

    CSS中最常用的布局类属性,一个是Float(CSS浮动属性Float详解),另一个就是CSS定位属性Position. 1. position:static 所有元素的默认定位都是:position ...

随机推荐

  1. 软件工程课设day3

    下载昨日新版本程序,完成修复项目的测试. 与组内成员讨论,确认项目新模块功能“吐槽墙”的设计方向与实现形式——因为项目为便捷工具类,社区形式的实现方式与项目本质背道而驰.因此决定以“点击目标课程条目, ...

  2. 用JQ仿造礼德财富网的图片查看器

    现在就职于一家P2P平台,自然也会关注同行其它网站的前端技术,今天要仿造的是礼德内页的一个图片查看器效果.不过说白了,无论人人贷也好礼德财富也好,很多地方的前端都做的不尽如人意,比如忽略细节.缺乏交互 ...

  3. Spring RabbitMq概述

    Spring AMQP consists of a handful of modules, each represented by a JAR in the distribution. These m ...

  4. 自定义路径创建Cocos2d-x项目

    自定义路径创建Cocos2d-x项目 本文介绍windows下面如何优雅的创建Cocos2d-x项目.为何称之为优雅,是因为现在网上流传的一些创建方法有一些问题.大致内容如下: l  使用VS向导创建 ...

  5. FusionCharts简单教程(一)---建立第一个FusionCharts图形

    由于项目需求需要做一个报表,选择FusionCharts作为工具使用.由于以前没有接触过报表,网上也没有比较详细的fusionCharts教程,所以决定好好研究FusionCharts,同时做一个比较 ...

  6. ASP.NET集成模式下的管道事件

  7. ios 向工程里添加Fonts

    ios 向工程里添加Fonts 1.网上搜索字体文件(后缀名为.ttf,或.odf),假如你加入的字体为微软雅黑 2.把字体库导入到工程的resouce中 3.然后在你的工程的Info.plist文件 ...

  8. H5常用代码:适配方案5

    此方案跟方案4是同一原理,也是通过REM实现的,能单独归类出一个方案,是因为它有一定的实用价值,当你遇到追求完美,追求到一像素的UI或者产品时,那此方案将解决你的困境. 方案5主要是用来解决一像素边框 ...

  9. iOS-数据持久化-偏好设置

    一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏 ...

  10. iOS-----用LLDB调试,让移动开发更简单(二)

    image lookup –address 当我们有一个地址,想查找这个地址具体对应的文件位置,可以使用image lookup --address,简写为image lookup -a e.g: 当 ...