在css中有一种属性position。在W3C上我们可以找到他又一下几种属性:absolute、fixed、relative、static、inherit。但是position的使用却并不是简简单单的将以上的属性值写入css就可以大功告成的,要想使用position,就要考虑这几种属性值在不同父级元素中的效果,以及自身标签中其他属性的值。

下面就具体解释一下这几个属性值的用法,不过首先你要理解“盒模型”,如果不明白,就要自学一下了(不是本文讨论的问题)。笔者也是看了其他博主的博文后,结合自己的理解整理的。所以借鉴了一些他人的思想。

1、static:

即默认的值,如果不对元素设置的话又没有设置为‘继承’,就相当于没做设置,所以很少看到有将position设置为static的情况,但只是少用,而不是不用。

2、relative(相对):

  使用这个元素时,要先找到该元素的父元素,还要知道trbl属性(top、right、bottom、left)。所谓相对,就是在父元素内部,设定子元素相对父元素中自己原来的的位置,比如:top:20px;就是距离父元素中自己原来的的位置偏下20像素,一般来说只需要指定横向上的一个和纵向上的一个,即可达到子元素定位的效果。另外,要强调一点,relative定位的子元素是不能重叠的,即他会考虑其他元素而布局的。

设置之后,原来的框还在,但自己已经偏移到原框偏移了。

3、absolute(绝对):

  即在父元素中不考虑同级子元素,用trbl属性(top、right、bottom、left)定位,但是有重叠,即在同一个父元素中,几个子元素使用相同的trbl属性(top、right、bottom、left),就会出现在同一个位置。因此会出现遮盖,这时候我们需要z-index设置显示优先级,值为自然数,即数值越大,显示层越靠前,越有可能被用户看到。值得注意的是,在W3C中指出“生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。”

  即在使用position:absolute时,应该先看看父元素。我们已经知道,如果static是一个默认值,即使用position:absolute前,先对父元素设置成一个“最近的已经定位的祖先元素”通常将父元素(被参考的先祖元素)设为position:relative。

4、fixed

  fixed与相似,只不过他的“参考先祖元素”是浏览器,即浏览器直属部队。

5、inherit

  即继承父元素的position值。

关于css 中position使用的浅谈的更多相关文章

  1. 深入理解css中position属性及z-index属性

    深入理解css中position属性及z-index属性 在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共 ...

  2. .net中对象序列化技术浅谈

    .net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储 ...

  3. CSS中Position属性

    也许你看到这个标题觉得很简单,确实这是一篇关于CSS中Position属性基础知识的文章,但是关于Position的一些细节也许你不了解. 1.简介 position有五个属性: static | r ...

  4. CSS中position和header和overflow和background

    <!DOCTYPE html> <!--CSS中position属性--> <html lang="en"> <head> < ...

  5. 对kotlin和java中的synchronized的浅谈

    synchronized在java中是一个关键字,但是在kotlin中是一个内联函数.假如分别在java和kotlin代码锁住同一个对象,会发生什么呢,今天写了代码试了试.首先定义people类 12 ...

  6. CSS中"position:relative"属性与文档流的关系

    前言 近期遇到一个问题--"position:relative"到底会不会导致元素脱离文档流?主流观点是不会,但都给不出一个有说服力的论据.最后我自己佐证了一番,总算有了个结果:& ...

  7. CSS中Position属性static、absolute、fixed、relative

    在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如下图所示   CSS中Position属性有四个可选值,它们分别是:static.absolute.fixed.rel ...

  8. 深入理解css中position属性及z-index属性 https://www.cnblogs.com/zhuzhenwei918/p/6112034.html

    深入理解css中position属性及z-index属性 请看出处:https://www.cnblogs.com/zhuzhenwei918/p/6112034.html 在网页设计中,positi ...

  9. CSS属性中的display属性浅谈;

    首先我们要知道什么是块级元素和行内元素有什么区别: 承接上篇文章:(浅谈HTML和body标签) 块级元素:浏览器解析为独占一行的元素(例如:div.table.ul等.),浏览器会在该元素的前后显示 ...

随机推荐

  1. accept 和 connect API深入 重点accept阻塞和非阻塞问题学习

    https://www.cnblogs.com/zhangkele/p/10284234.html

  2. Qt 日志输出

    Qt学习(3)日志输出 普通的打印输出 用 QtCreator 开发 Qt 程序时, 经常需要向控制台打印一些参数.有时候是查看对象的属性是否被正确设置,有时候是查看程序是否执行了某一段代码,或者执行 ...

  3. Qt 学习

    Qt 学习 C++ 模版 QObject 提供一个十分有用的 api,T findChild(QString, Qt::FindChildOptions),这个函数接收一个模版参数,返回模版参数的类型 ...

  4. Debug Diagnostics Tool创建.Net异常转储并用Windbg分析异常

    当我们要在IIS PRD环境下分析异常,并且对问题毫无头绪,又没有权限直接上打Log的代码.这个时候就是Debug Diagnostics Tool & Windbg大显神威的时候了. Deb ...

  5. Net-SNMP(V3协议)安装配置笔记(CentOS 5.2)(转)

    原出处:http://blog.ihipop.info/2010/03/722.html 为了这颗仙人掌(cacti),我必须先部署(Net-SNMP), 同时我为了安全因素,也为了简便考虑,决定采用 ...

  6. 将php代码部署到新浪云测试(简单方法,包含数据库的连接)

    很多人做项目都是先在本地测试然后上传到服务器运行,如果包含了操作数据库的信息往往需要进行一番调试,这里我总结一下把php代码包含数据库的连接如何上传到新浪云服务器的步骤. 1.在新浪云应用SAE的控制 ...

  7. angular2-搭建环境

    npm  模块将被下载安装到[全局目录]中.[全局目录]通过 npm config set prefix "目录路径" 来设置.通过 npm config get prefix 来 ...

  8. X-Cart-5.3.1.4 (Ubuntu 16.04)

    平台: Ubuntu 类型: 虚拟机镜像 软件包: x-cart-5.3.1.4 commercial ecommerce open-source x-cart 服务优惠价: 按服务商许可协议 云服务 ...

  9. Springboot中SpringMvc拦截器配置与应用(实战)

    一.什么是拦截器,及其作用 拦截器(Interceptor): 用于在某个方法被访问之前进行拦截,然后在方法执行之前或之后加入某些操作,其实就是AOP的一种实现策略.它通过动态拦截Action调用的对 ...

  10. [转]Android时间获取与使用

    编写Android网络程序时难免会遇到手机时间不准确的问题,本文总结了一些常用的时间获取与校正方法: 转载请注明:http://blog.csdn.net/xzy2046 1.获取本机当前时间: Ti ...