`

CSS+DIV布局中absolute和relative

 
阅读更多
这里向大家简单介绍一下CSS+DIV布局中absolute和relative属性的用法和区别,定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在,而定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在。

在用CSS+DIV进行布局定位的时候,一直对position的四个属性值relative,absolute,static,fixed分的不是很清楚,以致经常会出现让人很郁闷的结果。今天研究了一下,总算有所了解。在此总结一下:

先看下position各个属性值的定义:

1、static:默认值。没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)。

2、relative:生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常位置进行定位。可通过z-index进行层次分级。

3、absolute:生成绝对定位的元素,相对于static定位以外的第一个父元素(如果直接父元素没有position属性,则继续向上寻找有position的父元素,直到找到含有position的元素,并根据这个元素进行定位,如果所有父元素都没有这个属性,则根据body进行定位)进行定位。元素的位置通过"left","top","right"以及"bottom"属性进行规定。可通过z-index进行层次分级。

fixed:生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过"left","top","right"以及"bottom"属性进行规定。可通过z-index进行层次分级。

static与fixed的定位方式较好理解,在此不做分析。下面对应用的较多的relative和absolute进行分析:

1、relative。

定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在。如图1:


黄色背景的层定位为relative,红色边框区域为其在正常流中的位置。在通过top、left对其定位后,从灰色背景层的位置可以看出其正常位置依然存在。

2、absolute。

定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在。如图2:


可以看到,在将黄色背景层定位为absolute后,灰色背景层自动补上。

3、relative与absolute的主要区别:

首先,是上面已经提到过的在正常流中的位置存在与否。

其次,relative定位的层总是相对于其最近的父元素,无论其父元素是何种定位方式。如图3:


图中,红色背景层为relative定位,其直接父元素绿色背景层为默认的static定位。红色背景层的位置为相对绿色背景层top、left个20元素。而如果红色背景层定位为absolute,则情形如图4:


可以看到,红色背景层依然定义top:20px;left:20px;但其相对的元素变为定位方式为absolute或relative的黄色背景层。因此,对于absolute定位的层总是相对于其最近的定义为absolute或relative的父层,而这个父层并不一定是其直接父层。如果其父层中都未定义absolute或relative,则其将相对body进行定位,如图5:


除top、left、right、bottom定位外,margin属性值的定义也符合上述规则。

absolute:绝对定位,它的定位分两种情况,如下:

1、 有设定 Top、Right、Bottom、Left 的情况,这里又分了两种情况如下(如上所述):

      (1). 父级(并不单单指直接父级,如果直接父级没有position属性,则继续往上查找有position的的父级元素)没 position 属性,浏览器左上角(即 Body)为“坐标原始点”进行定位,位置由 Top、Right、Bottom、Left 属性决定。

      (2). 父级有 position 属性,父级的“坐标原始点”为原始点

2、 没有设定 Top、Right、Bottom、Left 的情况,默认依据父级(直接父级)的“内容区域原始点”为原始点(如果父级 Padding 属性,“坐标原始点”和“内容区域原始点”不一样),如图:


代码如下:
<div style="position:relative; top:20px; right:20px; width:300px; height:300px; background:yellow;padding-top:30px;padding-left:30px;">
  <div style="padding:10px 0px 0px 10px;margin:30px 0px 0px 30px;background:green;width:150px; height:150px">
    <div style="position:absolute; width:50px;height:50px;background:red">
    </div>
  </div>
</div>


参考网站http://www.jb51.net/article/13256.htm
http://developer.51cto.com/art/201009/225201.htm
  • 大小: 43.2 KB
  • 大小: 34.7 KB
  • 大小: 50.3 KB
  • 大小: 52.6 KB
  • 大小: 50.2 KB
  • 大小: 5 KB
分享到:
评论

相关推荐

    css+div网页模板整站

    通过对这些文件的查看和学习,我们可以了解不同类型的网页如何利用CSS+Div进行设计和布局。 具体到每个页面,我们可能会看到以下CSS知识点的应用: 1. 盒模型:包括内边距(padding)、边框(border)和外边距...

    css+div布局源码模板

    2. 定位布局:利用CSS的position属性(static、relative、absolute、fixed),可以精确控制Div的位置,适合多列布局和复杂页面结构。 3. 浮动布局:使用float属性(left、right),使元素脱离正常文档流,实现左右...

    CSS+DIV布局赏析案例.zip_CSS+DIV布局赏析案例

    4. **定位(positioning)**:CSS的定位属性,如static、relative、absolute和fixed,能精确控制元素在页面上的位置。案例可能利用这些属性实现特定元素的精确定位,如导航栏、侧边栏等。 5. **响应式设计**:随着...

    css+div布局实例

    CSS+DIV布局实例是学习网页布局时不可或缺的一部分,它能够帮助开发者掌握如何有效地利用CSS控制网页元素的布局和样式,实现灵活多变的设计效果。 CSS是一种样式表语言,用于定义HTML或XML(包括如SVG、MathML等...

    CSS+div 布局

    3. 定位布局(Positioning):使用position属性(如static、relative、absolute、fixed)进行定位,实现复杂布局,但需注意层叠上下文和相对定位。 4. Flexbox布局:通过设置div的display为flex,可以方便地实现单行...

    css+div布局练习

    本练习主要关注如何利用CSS和div进行灵活、精确的页面布局。下面将详细介绍CSS+div布局的重要概念、技巧以及实践应用。 一、CSS简介 CSS是一种样式表语言,用于定义HTML或XML(包括如SVG、MathML等各种XML方言)...

    CSS+DIV详解网站好帮手

    4. **定位机制**:详细讨论了position属性,包括static、relative、absolute、fixed和sticky等定位方式。 5. **选择器进阶**:探讨了伪类、伪元素、属性选择器等高级选择器的使用,以及如何利用它们实现更精细的...

    css+div 经典问题

    2. CSS Grid和Flexbox:这两种现代布局系统都广泛地使用div元素,Grid适用于二维网格布局,Flexbox则适用于一维布局,两者极大地简化了复杂网页布局的设计。 3. 分割屏幕布局:利用div和CSS,可以轻松实现左右或...

    CSS+DIV布局案例CSS+DIV布局案例CSS+DIV布局案例

    总的来说,这个压缩包文件很可能是为了帮助学习者通过实际操作来熟悉和掌握CSS和DIV在网页布局中的应用,提高他们的前端开发技能。对于初学者来说,这是一个很好的学习资源,通过案例学习可以更直观地理解布局原理和...

    CSS+DIV实例

    1. 浮动布局:早期的`CSS+DIV`布局常使用`float`属性,让元素在容器中浮动,实现左右排列或自适应布局。 2. 盒模型:理解盒模型是布局的关键,它包括元素的内容、内边距、边框和外边距,影响元素的总尺寸。 3. 定位...

    CSS+DIV 布局网站实例

    HTML用于构建网页的结构,而CSS则负责样式和布局。在本例中,`index.html`和`index2.html`可能包含了一系列使用&lt;div&gt;标签定义的容器,这些容器通过CSS控制其样式和位置,实现复杂的网页布局。 1. `&lt;div&gt;`标签:在...

    css+div源代码

    在这个名为"css+div源代码"的压缩包中,我们期待找到一系列使用CSS和HTML div元素进行布局实践的示例代码。下面将详细探讨CSS、div以及它们如何协同工作来创建动态和响应式的网页设计。 首先,CSS是一种样式表语言...

    CSS+DIV常用方法说明

    在现代网页设计中,CSS(层叠样式表)与HTML中的`&lt;div&gt;`元素是构建页面布局和样式的基石。通过合理利用CSS与`&lt;div&gt;`,可以实现响应式设计、灵活的网格布局以及丰富的视觉效果。本文将深入探讨CSS+DIV的一些核心概念...

    CSS+DIV基础(css所有样式+div布局)

    9. **Grid布局**: CSS网格布局系统允许在二维空间中精确控制元素的排列和对齐。 **DIV元素** DIV(Division)是HTML中的一个通用容器标签,用于分组其他HTML元素,主要用于布局。通过CSS,我们可以给DIV元素设置...

    CSS+DIV网页样式与布局 从入门到精通作者是喻浩 --源代码和示例

    《CSS+DIV网页样式与布局 从入门到精通》是由喻浩编著的一本专业教程,旨在帮助读者全面掌握使用CSS(层叠样式表)和DIV(定义文档结构的HTML元素)进行网页设计和布局的技术。这本书深入浅出地讲解了如何通过这两种...

    简单容易的CSS+DIV布局下载

    在"简易CSS+DIV"这个压缩包中,很可能包含了示例HTML文件和CSS文件,通过这些文件,你可以看到如何使用CSS来控制DIV元素的样式和布局。例如,可能会有以下关键知识点: 1. **盒模型**:CSS盒模型是理解布局的基础,...

    精通CSS+DIV网页样式与布局(附书源码)

    6. **定位(Positioning)**:CSS提供绝对定位(absolute)、相对定位(relative)、固定定位(fixed)和静态定位(static),以精确控制元素的位置。 7. **CSS层叠与继承**:层叠规则决定了当多个样式规则应用于同...

    css+div 31

    - `position`属性是CSS中控制元素位置的关键,有static(默认)、relative、absolute、fixed等值,可以实现相对定位、绝对定位和固定定位。 - `z-index`属性用于确定多个重叠元素的堆叠顺序,值越大,元素越靠前。...

    CSS + DIV 布局控制 菜单

    在网页设计中,CSS(Cascading Style Sheets)与DIV元素是构建现代网页布局不可或缺的工具。本主题将深入探讨如何使用CSS + DIV进行布局控制,特别是如何创建和管理菜单。CSS提供了强大的样式控制能力,而DIV作为一...

    HTML-CSS+DIV

    CSS(Cascading Style Sheets)则负责网页的样式和布局。通过CSS,我们可以改变文本颜色、字体、大小,以及设置背景、边距、对齐方式等。在本主题中,我们专注于基础的CSS,不涉及CSS3的新特性,例如圆角。这意味着...

Global site tag (gtag.js) - Google Analytics