对css中的定位属性postion刨根解牛
定位的基本思想很简单:
它允许你定义元素框相对于其正常位置应该出现的位置(relative),或者相对于父元素(absolute)、另一个元素甚至浏览器窗口本身的位置(fixed)。显然,这个功能非常强大,也很让人吃惊。
一切皆为框:
div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
以上介绍皆为铺垫,接下来才是真正的讲解postion这个属性
大家都知道postion属性有四个值,static fixed relative absolute,
今天我们就来剖析这四个值的特点,来揭开他们的神秘面纱:
1、static, 默认值,元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
2、relative,元素框偏移某个距离,相对它在正常流中的位置,元素仍保持其未定位前的形状,它原本所占的空间仍保留。偏移量通过top/left/right/bottom/设置
3、absolute,元素框从文档流完全删除(自然其宽高对父元素毫无影响),并相对于postion值为relative其包含块偏移定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
4、fixed ,元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
补充说明:
relative定位:
1、设置一个元素为相对定位后,如果不设置其偏移量(即 top|right|bottom|left值),则对于其本身而言,和没设相对定位,毫无区别和影响,但可能对子元素有影响(比如有绝对定位的子元素)
2、相对定位的元素偏移到其它地方,其宽度高度不会改变(原本width默认100%,还是100%,这是和absolute不一样的地方),不会挤压掉别的地方原本的元素,但会重叠,重叠的效果是,会覆盖掉未定位(即postion值为static)的元素,而不管其元素的html标签在相对定位元素的前面还是后面,对应定位元素,则是根据z-index属性值来,如果两个值相等,则比较html标签在文档中的先后。
3、设置相对定位元素的高度宽度会影响父元素的高度宽度(因为它的原来的坑还占着,原来的坑会随着元素的宽高改变大小)
absoute定位:
1、元素设置成绝对定位后,和父元素脱离关系(如果说有关系的话,就为设置偏移量前还在原来的位置,但不占地方,其坑会被后面的兄弟元素霸占,从而重叠),所以其大小变化对父元素毫无影响
2、元素绝对定位后都是块级元素(即使原本是行级元素如span),不过其宽度不设置的话将是内容的实际大小,不在是默认的父元素的宽度,这点和相对定位是有很大区别的
3、千万记住绝对定位元素是相对于,它的相对定位的父元素,如果父元素中没有相对定位的则是相对于body
最后介绍下 z-index属性,它只对定位元素(级postion不等于static)才有效
对css中的定位属性postion刨根解牛的更多相关文章
- 对css中的浮动属性float刨根解牛
1.浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 脱离常规流,由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样. 2.几张图说明浮动常 ...
- css中的定位属性position(转)
css中的定位属性position 同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来 ...
- css中的定位属性
- 总结一下CSS中的定位 Position 属性
在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...
- [转]总结一下CSS中的定位 Position 属性
在CSS中,Position 属性经常会用到,主要是绝对定位和相对定位,简单的使用都没有问题,尤其嵌套起来,就会有些混乱,今记录总结一下,防止久而忘之. CSS position 属性值: absol ...
- CSS 中关于background 属性功能
background 是 css中的核心属性,我们对他应该充分了解. background-image 定义背景图像 这个属性是我们用的最多的属性 设置背景图像有两个方式 background: ...
- Css中的Position属性
Css中的Position属性 Css属性在线查询地址: http://www.css88.com/book/css/properties/index.htm CSS 中的 position 属性 在 ...
- css中background背景属性概
css中background背景属性概 background:url(背景图片路径) no-repeat;/*不重复默认在左上方*/background:url(背景图片路径) no-repeat ...
- 理解与应用css中的display属性
理解与应用css中的display属性 display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none block inline inline-block inherit 下面, ...
随机推荐
- DOS下删除整个目录及下属所有文件夹及文件最好用的命令
Windows XP以上的版本,在使用DOS命令模式下删除目录(目录就是档案总管中所谓的资料夹)不是用 deltree,而是用 rmdir 指令. 在Windows XP.2000.NT下都可用rmd ...
- MyEclipse使用自己的JDK和Tomcat
配置tomcat:window-->preferences-->myeclipse-->servers-->tomcat-->选一个-->右边选择一的tomcat的 ...
- 在Python中调用C++,使用SWIG
http://www.coder4.com/archives/2141 SWIG:Simplified Wrapper and Interface Generator,顾名思义,就是将C/C++包装为 ...
- SQL中Case的使用方法(上篇)(转)
http://www.cnblogs.com/fxgachiever/archive/2010/09/09/1822106.html Case具有两种格式.简单Case函数和Case搜索函数. --简 ...
- Spring3 +mybatis3 之 MapperScannerConfigurer
之前一直使用"org.mybatis.spring.mapper.MapperFactoryBean"这个类在spring中配置mybatis的dao接口,后来发现如果dao太多话 ...
- 『Asp.Net 组件』Asp.Net 服务器组件 内嵌CSS:将CSS封装到程序集中
代码: <span style="font-family:Microsoft YaHei; font-size:12px">using System; using Sy ...
- Qt中的多线程编程
http://www.ibm.com/developerworks/cn/linux/l-qt-mthrd/ Qt 作为一种基于 C++ 的跨平台 GUI 系统,能够提供给用户构造图形用户界面的强大功 ...
- VCL+FMX 双剑合壁编程
VCL 是经典,FMX 是新生,新生事物总会带来一些好玩新奇的东西.舍弃经典是浪费,不了解新生事物是等死,那么我们来一个二合一双剑合壁又如何呢? 要双剑合壁,就得投些机,取些巧.由于 Delphi / ...
- Android开发之ListView-BaseAdapter的使用
ListView优化原则: UI优化: listview条目与条目之间的间隙的分割内容 : android:divider="@android :color/transparent" ...
- win7 64位系统 pl/sql 无法解析指定的连接标识符解决办法
我用的是win764位,装好后,装了pl/sql 和toad,都连不上数据库,报错位“无法解析指定的连接标识符” 解决办法,经过研究发现安装目录有问题.默认会安装在“C:\Program Files ...