position的四个属性值

relative

absolute

fixed

static

参看实例
<div id="parent">
 <div id='sub1'>sub1</div>
 <div id="sub2">sub2</div>
</div>

relative相对定位

relative 属性相对比叫简单,我们要搞清楚它是相对哪个对象来进行偏移的。答案是它本身的位置。
上面的代码中sub1和sub2是同级关系,如果设定sub1一个relative属性,比如设置css代码如下
#sub1
{
 position:relative;
 padding:5px;
 top:5px;
 left:5px;
}
我们可以这样理解,如果不设置relative属性,sub1的位置按照正常的文档流,它应该处于某个位置。
但当设置sub1为postion为relative后,将根据top,right,bottom,left的值按照它理应所在的位置进行偏移,
relative的"相对的"意思也正是体现于此

因此,只需要记住,sub1如果不设置relative时它应该在哪里,一旦设置后,就按照它理应在的位置进行偏移
随后的问题是:sub2的位置又在哪里呢?
答案:它原来在哪里,现在就在哪里,它的位置不会应为sub1增加了position的属性而发生改变
如果此时把sub2的position也设置为relative,或发生什么现象?
此时依然和sub1一样,按照它原来的位置进行偏移。
注意relative的偏移是基于对象的margin的左上侧的。

absolute绝对定位

有人说position的属性设置为absolute后,总是按照浏览器窗口来进行定位的,这其实是错误的,实际上,这是fixed属性的特点。
当sub1的postion设置为absolute后,其到底以谁为对象进行偏移呢。
1)当sub1的父对象(或曾祖父,只要是父级对象) parent也设置了position属性,且position的属性值为absolute或relative时,
也就是说,不是默认值得情况,此时sub1按照这个parent来进行定位。
note: 对象虽然确定好了,但有些细节需要注意,那就是我们到底以parent的哪个定来进行定位呢?
如果是parent设定了margin,border,padding等属性,那么这个定位将忽略padding,
将会从padding开始的地方(即从padding的左上角开始)进行定位,这与我们会想当然的以为会以margin的左上端开始定位的想法不同。
接下来的问题是:sub2的位置到哪里去了呢?
由于当position设置为absolute后会导致sub1溢出正常的文档流,就像它不属于parent一样,它漂浮了起来,
在DreamWeaver中把它称为"层",其实意思一样。
此时sub2将获得sub1的位置,它的文档流不再基于sub1,而是直接从parent开始。

2) 如果sub1不存在有着position属性的父对象,那么就会以body为定位对象,按照浏览器的窗口进行定位。

fixed固定定位

fixed是特殊的absolute,即fixed总是以body为定位对象的,按照浏览器的窗口进行定位

static静态定位

position的默认值,一般不设置position属性时,会按照正常的文档流进行排列

absolute和fiex的区别

1)absolute的相对位置分为两种情况,在相对于body的情况下
a) 没有滚动条的情况下没有差异
b) 在有滚动条的情况下 fixed定位不会随滚动条移动而移动,而aboslute则会随滚动条移动

css 页面定位position的更多相关文章

  1. 天坑,CSS之定位Position(六分之五)

    Position定位 个人觉得position这个属性真的算是CSS的见面杀了.尤其是absolute,当年可是被虐的不轻.当然了,现在爱上了这个属性,谁用谁知道. position属性 positi ...

  2. CSS中定位position

    毋庸置疑的是,pisition是css中是最重要的属性之一. 一共有四种定位方式,static.relative.absolute.fixed. 默认的定位方式static 页面中所有的元素默认都是s ...

  3. CSS 的定位方式和含义

    CSS 的定位方式和含义 总结一下 CSS 的定位方式.CSS 的定位 position 是处理页面布局时非常重要的属性. CSS 中有 3 种基本的定位机制:普通流.浮动和绝对定位. 在没有指定的情 ...

  4. CSS:CSS Positioning(定位)

    ylbtech-CSS:CSS Positioning(定位) 1.返回顶部 1. CSS Positioning(定位) position 属性指定了元素的定位类型. position 属性的四个值 ...

  5. [转载]CSS元素的定位position

    CSS元素的定位position 属性position   值 描述 absolute                             生成绝对定位的元素,相对于 static 定位以外的第一 ...

  6. CSS之定位布局(position,定位布局技巧)

    css之定位 1.什么是定位:css中的position属性,position有四个值:absolute/relative/fixed/static(绝对/相对/固定/静态(默认))通过定位属性可以设 ...

  7. css之定位(position)

    1.什么是定位: css中的position属性,position有四个值:absolute/relative/fixed/static(绝对/相对/固定/静态(默认))通过定位属性可以设置一些不规则 ...

  8. css中对position的几种定位方式的最佳诠释

    关于元素的position定位的理解,牛客网的hardy给出了一个比较好的理解: 在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如上图所示   CSS中Positio ...

  9. [转]总结一下CSS中的定位 Position 属性

    在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...

随机推荐

  1. 20145122《敏捷开发与XP实践 》实验三实验报告

    实验名称 敏捷开发与XP实践 实验内容 1.团队代码要使用git在实验楼中托管,要使用结对同学中的一个同学的账号托管. 2.使用git推送代码并对结对同学的代码修改完成后再git推送. 3.掌握重构流 ...

  2. Educational Codeforces Round 21 Problem D(Codeforces 808D)

    Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...

  3. /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 文件的作用

     转载自:http://blog.csdn.net/u013968345/article/details/21262033 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登 ...

  4. 【自动化】基于Spark streaming的SQL服务实时自动化运维

    设计背景 spark thriftserver目前线上有10个实例,以往通过监控端口存活的方式很不准确,当出故障时进程不退出情况很多,而手动去查看日志再重启处理服务这个过程很低效,故设计利用Spark ...

  5. 纯CSS实现一个微信logo,需要几个标签?

    博客已迁移至http://lwzhang.github.io. 纯CSS实现一个微信logo并不难,难的是怎样用最少的html标签实现.我一直在想怎样用一个标签就能实现,最后还是没想出来,就只好用两个 ...

  6. StringBuffer中的sBuffer.delete(0,4);

    只删除第0-3位的字符,第4位是不删的

  7. 在ANE插件中启动AIR开发的Android应用

    在Android原生应用开发中,启动一个应用非常容易: Intent __intent = new Intent(this, YourAppActivity.class); startActivity ...

  8. Spring AMQP 源码分析 01 - Impatient

    ### 准备   ## 目标 了解 Spring AMQP 核心代码   ## 前置知识 RabbitMQ 入门   ## 相关资源   Quick Tour for the impatient:&l ...

  9. Android Intent参数传递

    Android Intent参数传递 Android参数传递有两种方式, 1.是从一个Activity传递参数到第二个Activity并在第二个Activity获取数据 2.是从第二个Activity ...

  10. 雷林鹏分享:C# 委托(Delegate)

    C# 委托(Delegate) C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针.委托(Delegate) 是存有对某个方法的引用的一种引用类型变量.引用可在运行时被改变. 委托 ...