另一篇:
http://blog.csdn.net/phqm/archive/2009/07/29/4391054.aspx
感谢原作者
http://book.51cto.com/art/200806/76234.htm
在CSS中关于定位的内容是:position:relative | absolute | static | fixed
static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。
relative 不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级。
absolute 脱离文档流,通过 top,bottom,left,right 定位。选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。
fixed 固定定位,这里他所固定的对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。
CSS中定位的层叠分级:z-index: auto | namber;
auto 遵从其父对象的定位
namber 无单位的整数值。可为负数
定位的原理 :
可以位移的元素 (相对定位)
在本文流中,任何一个元素都被文本流所限制了自身的位置,但是通过CSS我们依然使得这些元素可以改变自己的位置,我们可以通过float来让元素浮动,我们也可以通过margin来让元素产生位置移动。但是事实上那并非是真实的位移,因为,那只是通过加大margin值来实现的障眼法。而真正意义上的位移是通过top,right,bottom,left(下称TRBL,TRBL可以折分使用。)针对一个相对定位的元素所产生的。我们看下面的图:
我们看图中是一个宽度为200px,高度为50px,margin:25px; border:25px solid #333; padding:25px; 相对定位的元素,并且位移距上50px,距左50px。而下方是一块默认定位的黑色区块。我们看到这个处在文本流的区块被上面的相对定位挡住了一部分,这说明:“当元素被设置相对定位或是绝对定位后,将自动产生层叠,他们的层叠级别自然的高于文本流”。除非设置其z-index值为负值,但是在 Firefox等浏览器中z-index为负值时将不会显示。并且我们发现当相对定位元素进行位移后,表现内容已经脱离了文本流,只是在本文流中还为原来的相对对定位留下了原有的总宽与总高(内容的高度或是宽度加上margin\border\padding的数值)。这说明在相对定位中,虽然表现区脱离了原来的文本流,但是在文本流中还还有此相对定位的老窩。这点要特别注意,因为在实际应用中如果相对定位的位移数值过大,那么原有的区域就会形成一块空白。
并且我们注意,定位元素的坐标点是在margin值的左上边缘点,即图中的B点。那么所有的位移的计算将以这个点为基础进行元素的推动。当TRBL为正值时位移的方向是内聚的。由此可推,当TRBL为负值时位移的方向是外放的。在图片中有位移的箭头指向标识,带有加号的是正值位移方向,带有减号的是负值位移方向。关于位移方位,可以延伸阅读怿飞的《由浅入深漫谈margin属性(一)》
可以在任意一个位置的元素 (绝对定位)
如上所述:相对定位只可以在文本流中进行位置的上下左右的移动,同样存在一定的局限性,虽然他的表现区脱离了文本流,但是在文本流却依然为其保留了一席之地,这就好比一个打工的人他到了外地,但是在老家依然有一个专属于他的位置,这个位置不随他的移动而改变。但是这样很明显就会空出一块空白来,如果希望文本流抛弃这个部分就需要用到绝对定位。绝对定位不光脱离了文本流,而且在文本流中也不会给这个绝对定位元素留下专属空位。这就好比是一个工厂里的职位,如果有一个工人走了自然会要有别的工人来填充这个位置。而移动出去的部分自然也就成为了自由体。绝对定位将可以通过TRBL来设置元素,使之处在任何一个位置。在父层position属性为默认值时,TRBL的坐标原点以body的坐标原点为起始。看下图:
上图可知,文本流中的内容会顶替绝对定位无素的位置,一点都不会客气。而绝对定位元素自然的层叠于文本流之上。而在单一的绝对定位中,定位元素将会跑到网页的左上角,因为那里是他们的被绝对定位后的坐标原点。
被关联的绝对定位
上面说的是单一的绝对定位,而在实际的应用中我们常常会需要用到一种特别的形式。即希望定位元素要有绝对定位的特性,但是又希望绝对定位的坐标原点可以固定在网页中的某一个点,当这个点被移动时绝对位定元素能保证相对于这个原坐标的相对位置。也就是说需要这个绝对定位要跟着网页移动,而并且是因定在网页的某一个固定位置。通常当网页是居中形式的时候这种效果就会显得特别的重要。要实现这种效果基本方式就是为这个绝对定位的父级设置为相对定位或是绝对定位。那么绝对定位的坐标就会以父级为坐标起始点。
虽然是如此,但是这个坐标原点却并不是父级的坐标原点,这是一个很奇怪的坐标位置。我们看一下模型图示:
我们看到,这个图中父级为黑灰色区块,子级为青色区块。父级是相对定位,子级是绝对定位。子级设置了顶部位移50个像素,左倾位移50个像素。那么我们看,子级的坐标原点并不是从父级的坐标原点位移50个像素,而是从父级块的padding左上边缘点为坐标起始点(即A点)。而父级这里如果要产生位置移动,或是浏览器窗口大小有所变动都不会影响到这个绝对定位元素与父级的相对定位元素之间的位置关系。这个子级也不用调整数值。
这是一种很特别并且也是非常实用的应用方式。如果你之前对于定位的控制并不自如的话,相信看完对这里对定位的解释一定可以把定位使用得随心所欲。
总在视线里的元素 (固定定位)
由于广告的滥用,使得一些浏览器软件都开始有了广告内容拦截,使得一些很好的效果现在都不推荐使用了。比如让一个元素可能随着网页的滚动而不断改变自己的位置。而现在我可以通过CSS中的一个定位属性来实现这样的一个效果,这个元素属性就是曾经不被支持的position:fixed; 他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。
虽然原来的浏览器并不支持过个属性,但是浏览器的发展使得现在的高级浏览器都可以正确的解析这个CSS属性。并且通过CSS HACK来让IE6都可以实现这样的效果(目前无法使IE5.x)实现这种效果
- css定位模型.rar (399.1 KB)
- 下载次数: 3
发表评论
-
JS面向对象编程
2012-02-06 10:51 644http://hi.baidu.com/ruan083de/b ... -
JS正则 备忘
2012-01-10 16:21 675http://www.iteye.com/topic/3072 ... -
JS事件冒泡浏览器兼容
2011-06-16 11:06 1241Event keyCode: http://unixpap ... -
CSS样式
2011-06-08 13:47 799自动换行设定宽度:word-wrap\word-break\w ... -
Javascript5-jquery
2011-01-27 15:34 718jquery api: http://visu ... -
JSON
2011-01-21 15:53 746java开源的东西.多。 51cto: //------- ... -
CSS 层定位FLOATDISPLAYVISIBILITY
2011-01-01 15:11 883//图片滚动http://www.kxbd.com/mylab ... -
CSS-设计网站(DIV盒子模型)
2011-01-01 11:04 1520.盒子模型以及定位的不 ... -
原理性知识总结
2010-11-04 22:18 8141.spring框架bean be ... -
JavaScript4
2010-10-14 18:50 751http://www.w3school.com.cn/js/j ... -
Spring-JdbcTemplate
2010-04-30 14:06 982JdbcTemplate事务操作: <bean ... -
CSS-右键菜单DIV TABLE
2010-04-20 10:53 2929DIV: 动态增减DIV: 总有bug.不停的右键 就只会增 ... -
JSP分页
2010-04-17 13:29 923分页 用rownum较多 Oracle数据库的rownum ... -
JavaScript3
2010-04-15 13:44 737右键弹出菜单: //-------------------- ... -
JavaScript2
2010-04-13 16:12 9081.单选按钮 <input type="rad ... -
JavaScript1
2010-03-22 17:10 542from:http://www.tsolong.com/pos ... -
webwork框架
2009-07-02 20:41 7661.webwork标签 教材:http://dev.csdn. ... -
关于框架开发
2009-06-18 00:05 746纪念: JAR Library Installation(ja ... -
页面常用部分
2009-05-25 22:39 685HTML+XHTML+CSS+JavaScript+DOM+A ...
相关推荐
总的来说,HTML+CSS定位是网页设计中的关键技能,熟练掌握它能让你创建出更加灵活和精细的网页布局。通过这个练习集,希望你能深入理解定位的概念,提升你的网页设计能力。记得多实践、多尝试,理论与实践相结合才能...
本话题主要关注如何利用CSS定位技术实现动态关联的效果,这对于网页设计和前端开发至关重要。下面将详细阐述CSS定位的基本概念、常见定位方式以及如何应用它们来创建动态关联效果。 首先,了解CSS定位的基本概念。...
有了这个就可以搞定很多事情 在“CSS规则对话框”中,我们可以通过类型、背景、区块、方框、边框、列表、定位和扩展项的设置,来美化我们的页面,当然啦,我们在定义某个...还有【CSS定位详解之绝对定位和相对定位】哦
总的来说,CSS定位技术为前端布局提供了强大的控制能力,可以实现元素的精确布局。理解定位的工作原理及其在不同布局方式(标准流、浮动、定位)中的应用,对于前端开发者来说至关重要。在网页布局中,定位通常是在...
### CSS定位详解:绝对定位与相对定位 #### 相对定位(Relative Positioning) 相对定位是一种常见的CSS定位方式,它允许元素相对于其正常位置进行偏移。这种定位不会影响其他元素的位置。 - **定义**: 当元素...
本文将详细解析div+css定位的四种基本类型:static、relative、absolute和fixed,以及它们之间的差异。 1. **static**: - 这是元素的默认定位方式,元素会按照正常的文档流顺序排列,不考虑`top`, `bottom`, `...
CSS定位是网页设计中至关重要的一个概念,它允许开发者精确控制元素在页面上的位置。CSS定位主要有四种方式,分别是默认定位(static)、相对定位(relative)、绝对定位(absolute)和固定定位(fixed)。 1. **...
### 什么是CSS定位? CSS(层叠样式表)定位是一种用于控制HTML元素在网页上的位置的方法。通过CSS定位,开发者可以精确地控制元素相对于其原始位置、父元素或浏览器窗口的位置。CSS提供了多种定位方式,主要包括...
4. CSS定位: 定位是CSS中的一项重要技术,用于控制元素在页面上的精确位置。主要有以下几种定位方式: - `static`:默认值,元素按常规流排列。 - `relative`:相对于其正常位置偏移。 - `absolute`:相对于...
CSS 定位布局详解 在 CSS 中,定位(position)是指元素在网页中的位置和布局方式。CSS 提供了多种定位方式,包括 static、relative、absolute、fixed 等。不同的定位方式将元素在网页中的位置和布局方式进行调整。...
网页CSS定位和滤镜是构建动态、美观网页的关键技术,它们极大地丰富了网页的设计与交互体验。在这份资源中,包含的"CSS5_定位"和"CSS6_尺寸"两个PPT课件以及相关的实例网页,将帮助我们深入理解和应用这些概念。 ...
CSS定位主要包括静态定位、相对定位、绝对定位、固定定位和粘性定位。其中,相对定位是基础,它允许元素相对于其原始位置进行偏移,但不会改变文档流。相对定位的CSS代码通常写作: ```css .element { position: ...
本篇文章将深入探讨两个关键概念:CSS定位和元素的隐藏与显示,通过具体的案例来阐述这些知识点。 一、CSS定位 定位是CSS中用于控制元素在页面上精确位置的重要技术。主要的定位机制有以下几种: 1. 静态定位...
CSS(层叠样式表)是网页设计中用于控制布局和样式的语言,它的重要性在于能够实现灵活、响应式的设计。本文将深入探讨CSS中的四个关键...通过实践和深入学习,我们可以更好地掌握CSS定位,从而提升网页设计的质量。
在网页设计中,Div+CSS定位是构建高效、响应式布局的关键技术。Dreamweaver CS6作为一款强大的网页设计工具,提供了直观的界面来处理Div和CSS的定位问题。本文将详细探讨在Dreamweaver CS6中,如何利用Div和CSS的...
本教程将深入讲解CSS定位与div布局,这是创建复杂网页结构的关键技能。在第10课中,我们将详细探讨以下知识点: 1. **CSS盒模型**:理解CSS盒模型是掌握布局的基础。每个HTML元素都是一个矩形的盒子,包括内容区域...
div+css定位代码示例 说明了绝对和相对
在本主题“CSS定位表格”中,我们将深入探讨如何使用CSS来创建和定位不同布局的表格,包括单行一列、两行一列、三行一列以及多列布局。这些布局通常基于浮动(float)和绝对定位(absolute positioning)方法。 1. ...
**二、CSS定位** 定位(Positioning)提供了更精细的控制,使开发者能够精确地指定元素在页面上的位置。定位分为以下几种类型: 1. **静态定位(static)**:这是元素的默认定位方式,遵循正常文档流。 2. **相对...