`

DIV+CSS绝对定位和相对定位详解

    博客分类:
  • html
 
阅读更多

 

 

本文和大家重点讨论一下DIV+CSS之绝对定位和相对定位,在用DIV+CSS控制排版过程中,定位一直被人认为是一个难点,这主要是表现为很多网友在没有深入理解清楚定位的原理时,排出来的杂乱网页常让他们不知所措。

  前言

  在用DIV+CSS控制排版过程中,定位一直被人认为是一个难点,这主要是表现为很多网友在没有深入理解清楚定位的原理时,排出来的杂乱网页常让他们不知所措,而另一边一些高手则常常借助定位的强大功能做出些很酷的效果来,比如CSS相册等等,因此自己杂乱的网页与高手完美的设计形成鲜明对比,这在一定程度上打击了初学定位的网友,也在他们心目中形成这样的一种思想:当我熟练地玩转DIV+CSS定位时,我就已是高手了。不管你怎么想,我只希望下面的教程能让你更深入地了解CSS定位属性。

  阅读建议

  先说说我这篇教程的思路,这对于你在正真开始阅教程前是有很大帮助的。我的思路是这样的:先给出定位较专业化精炼的解释,接下来再用打比如的方法形象地介绍它们,此时大家要和前面讲到的专业解释对比阅读。介绍完理论,将通过实例来介绍定位的各知识点,虽然实例不美,但每一则实例都是精心挑选的,如果要完整掌握DIV+CSS定位方法,请务必弄懂每一个实例的原理。最后将会带大家做一个较为酷的综合实例。如果你想提高你阅读本文的兴趣或者动力,你可以先跳到最后看综合实例的运行效果。

  1.定位的专业解释

  (1)语法

  position:static|absolute|fixed|relative

  (2)说明

  从上面语法可以看出,定位的方法有很多种,它们分别是静态(static),绝对定位(absolute),固定(fixed),相对定位(relative)。在这个教程里,我不逐一讲,只讲最常用也是最实用的两个定位方法:绝对定位(absolute)、相对定位(relative)。

  绝对定位(absolute):将被赋予此定位方法的对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父级对象进行绝对定位,如果对象的父级没有设置定位属性,即还是遵循HTML定位规则的,则依据body对象左上角作为参考进行定位。绝对定位对象可层叠,层叠顺序可通过z-index属性控制,z-index值为无单位的整数,大的在最上面,可以有负值(目前负值FF不支持)。

  相对定位(relative):对象不可层叠,依据left,right,top,bottom等属性在正常文档流中偏移自身位置。同样可以用z-index分层设计。

  2.定位的形象解释

  我先来架设一个虚拟的场景:有一个矩形的房间,里面还有一个水桶装了些水,水里还浸泡着一个西瓜,这个房间半空中还有不少的钩子用于挂东西用。现在我把网页元素与上面物件对应上,那么房间就是一个网页,水桶是网页中的一个板块,桶中的水就是文本流,西瓜就是将要被定位的对象。

  (1)贡献的绝对定位(absolute)

  对照前面解释,如果西瓜被赋予绝对定位,那么就等于把西瓜从水中捞起来挂在半空中的钩子上,水桶中西瓜原来占用的空间水会自动填补它(绝对定位对象会让出自己原先占用位置,所以说它是贡献的)。此时如果之前没有对水桶进行定位设定,那么被拿起的西瓜位置不会再受水桶位置影响,水桶怎么移动,西瓜还是挂在原来位置,至于西瓜要怎放,则以房间左上角(body左上角)为准,用left,right,top,bottom值来定位。

  但是如果水桶也给出了定位设置(通常是相对定位,下面有讲到这一实用技巧),此时西瓜的摆放就没有那么自由了,尽管此时西瓜被拿起来了不会影响水桶中的水(文本流),但它还是要听桶的话,桶会告诉西瓜“你可以活动,但应该在我的范围内走动,比方说我要你在我左上方1米处,你就要跟死这一点,我走你也要跟着走”,如果桶中有很多个西瓜,可以全部拿出来吊到半空中,它们将被安排在不同高度的空间(层),所以在房顶垂直往下看,有可能看到不同西瓜层叠在一起的情况(这个所谓的高度在网页中是不存在的,就像FLASH动画中的不同层上安排了元素,但它们在看时不会有深度感觉)。可见绝对定位的对象参考目标是它的父级,专业称之为包含块。

  (2)自私的相对定位(relative)

  相对定位一个最大特点是:自己通过定位跑开了还占用着原来的位置,不会让给他周围的诸如文本流之类的对象。相对定位也比较独立,做什么事它自己说了算,要定位的时候,它是以自己本身所在位置偏移的(相对对象本身偏移)。再拿前边作比如来解,那么此时西瓜似乎是有魔法的,如果西瓜通过相对定位在水桶中偏移了你会看到一个现实生活中不存在的现象:水中有一个地方水凹下去了,周围的水不能填补它,西瓜看起来在旁边,如果搅动一下桶中的水,那个凹的位置会发现改变(文本流对相对定位对象还存在影响),但是凹处到西瓜出现的距离始终保持一致。可见文本流与它之间还会互相影响,因为对象并没有真正脱离文本流,就像有两个人在同一层楼水平移动的过程中会有碰头的机会。

  (3)总结两种定位的特征

  绝对定位就像是把不同对象安排到了一栋高楼的不同楼层(一般指不是第一层,我们这里理解为文本流就放在首层),它们互不影响,但是它们怎么移动与你楼的地基和面积(父级)有关。相对定位指对象还是在首层楼与文本流一起存放,它们之间肯定存在影响。

  (4)对特殊情况的补充

  在用相对定位和绝对定位的时候,有一种情况是它们的定位值用到了负值则对象可沿相反方向移动,刚才说到的把对象安排在一栋楼的不同层,如果某个对象一开始就是背靠着最外边墙的,此时再用一个负值定位它,它就会神奇般地跑出墙外去了,当然现实中可没有这种惊险而又神奇的事发生,本人只为了延用上面的比如作形象解释。

分享到:
评论

相关推荐

    详解学习DIV+CSS之四-绝对定位和相对定位

    详解学习DIV+CSS之四-绝对定位和相对定位

    DIV+CSS入门教程

    总之,"Div+CSS"入门教程旨在教授初学者如何利用XHTML标签(不仅限于DIV)和CSS进行网页布局,同时强调遵循Web标准和最佳实践,以创建可扩展、可维护的网页设计。在实际工作中,避免误解和滥用技术,如过度依赖DIV或...

    div+css后台登录模版

    《基于Div+CSS的后台登录模板详解》 在网页设计领域,Div+CSS技术的应用已经十分广泛,尤其在构建后台管理界面时,这种技术能够帮助我们实现清晰的结构、良好的可维护性和高效的页面表现。本篇文章将围绕"div+css...

    div+css 网站实例 教程 css布局

    定位机制包括静态定位、相对定位、绝对定位和固定定位,它们分别适用于不同的场景,例如相对定位常用于微调元素位置,而绝对定位则可用于实现层叠效果。 在本教程中,可能包含以下内容: 1. CSS基础:学习选择器、...

    div+css模板 div+css模板

    `div`可以通过`class`或`id`属性进行区分和定位,方便我们对其进行精确的控制和操作。 **二、CSS:视觉设计的灵魂** CSS(Cascading Style Sheets)是一种样式表语言,用于定义HTML或XML(包括SVG、MathML等各种...

    css,div+css

    【CSS和Div+CSS布局详解】 CSS(Cascading Style Sheets)是一种用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档样式的样式表语言。在网页设计中,`div+css`布局是一种常见的网页布局方式,它将结构...

    div+css菜单生成器

    **div+css菜单生成器详解** 在网页设计中,菜单是不可或缺的一部分,它为用户提供直观的导航体验。传统的菜单制作通常需要手动编写HTML和CSS代码,对于非专业开发者来说,这个过程可能较为复杂。"div+css菜单生成器...

    Div+Css实例源代码

    《Div+Css实例源代码详解》 Div+CSS,即HTML中的<div>标签与CSS(层叠样式表)相结合的技术,是网页布局设计中的核心工具。这种技术的应用,使得网页设计更加灵活,代码结构更加清晰,同时提高了网页的可维护性和可...

    DIV+CSS模板非常好看

    【DIV+CSS模板详解】 在网页设计领域,`DIV+CSS`是一种常见的布局技术,它以其灵活性、可维护性和高效性赢得了广泛的认可。标题“DIV+CSS模板非常好看”表明了这种技术在创建美观界面方面的潜力,而描述则强调了这...

    Div+CSS布局入门教程(一二三四)

    【Div+CSS布局入门教程详解】 Div+CSS布局是网页设计中的重要技术,它通过分离样式和内容,使得网页设计更加灵活、可维护性更强。本教程将带你一步步入门Div+CSS布局,从基础概念到实际操作,帮助你掌握这种布局...

    div+css 后台管理系统模版

    《div+css 后台管理系统模板详解》 在网页设计领域,`div+css`是一种广泛应用的技术,用于构建高效、可维护的后台管理系统界面。这种技术的核心在于将内容(div)与样式(css)分离,使得网页布局更加灵活,同时...

    用DIV+CSS技术设计的个人网页(网页制作课作业)

    2. 定位(Positioning):CSS提供了静态、相对、绝对和固定定位,通过设置`position`属性,可以控制元素在页面中的位置。 3. 响应式布局(Responsive Design):使用媒体查询(Media Queries)和百分比单位,可以让...

    Div+CSS简单布局

    **Div+CSS布局详解** Div+CSS布局是网页设计中常用的一种技术,它将内容(HTML元素)与表现(样式)分离,提高了网页的可维护性和可扩展性。Div是HTML中的一个容器元素,用于组织页面结构,而CSS(Cascading Style ...

    简约的DIV+CSS模板

    Div,全称为Division,是HTML中的一个块级元素,用于对网页内容进行分组和定位。CSS(Cascading Style Sheets)则负责定义这些Div元素的样式,包括颜色、字体、布局等。通过Div+CSS,我们可以实现内容与样式的分离,...

    DIV+CSS基础教程

    ### DIV+CSS基础教程知识点详解 #### 一、DIV+CSS概述 - **定义:** - **DIV:** 在HTML(超文本标记语言)中,`div` 是一个常用的容器元素,用于为HTML文档中的内容提供结构和背景。它可以包含其他元素,形成一...

    Div+CSS模板.

    《Div+CSS模板详解及其应用》 Div+CSS布局技术是网页设计领域中不可或缺的一部分,它为网页构建提供了高效、灵活且易于维护的解决方案。Div(Division)是HTML中的一个块级元素,常用于对页面内容进行分组和布局;...

    DIV+CSS 国外个性涂鸦模板

    "div+css布局"指的是使用<div>元素进行页面区域划分和定位,而"div+css实例"则可能包含多个具体的应用示例,展示如何通过CSS控制<div>元素的样式。"div+css模板"则是一个完整的、可以复用的设计框架。 **知识点详解...

    div+css 布局 demo

    **div+css布局详解** 在网页设计中,`div+css`布局是一种常见的技术,用于组织和控制网页元素的位置和样式。它通过HTML中的`<div>`元素作为容器,配合CSS(Cascading Style Sheets)来实现灵活、可维护的页面布局。...

Global site tag (gtag.js) - Google Analytics