`

DIV的Position属性和DIV嵌套DIV

阅读更多
1.前言
我们在利用div+css进行布局时,常常被div的位置弄的焦头烂额,很多人甚至放弃了div而直接用table。这里一如既往的推荐使用div布局,其实我们只要掌握了div的position属性和div的float属性,布局是非常灵活的,这里详细说一下div的position,没想象中那么简单,也没想象中那么复杂。

2.position的四种取值
static:static定位就是不定位,出现在哪里就显示在哪里,这是默认取值,只有在你想覆盖以前的定义时才需要显示指定
relative:relative 就是相对元素static定位时的位置进行偏移,如果指定static时top是50象素,那么指定relative并指定top是10象素时,元素实际top就是60象素了。
absolute:absolute绝对定位,直接指定top、left、right、bottom。有意思的是绝对定位也是“相对”的。它的坐标是相对其容器来说的。容器又是什么呢,容器就是离元素最近的一个定位好的“祖先”,定位好的意思就是其Position是absolute或fixed或relative。如果没有这个容器,那就使用浏览器初始的,也就是body或者html元素。标准是说只需要指定left和right,width可以自动根据容器宽度计算出来,可惜ie不支持。
fixed:fixed才是真正的绝对定位,其位置永远相对浏览器位置来计算。而且就算用户滚动页面,元素位置也能相对浏览器保持不变,也就是说永远可以看到,这个做一些彩单的时候可以用。可惜的是ie还不支持

3.relative,absolute,fixed需要指定具体位置
relative,absolute,fixed如果不指定它的top,left等属性,那么它的position实际上依然是static。使用了relative,absolute,fixed就必须指定具体的位置。

4.关于DIV的嵌套
我们设定外层div的名字为div1,内层div的名字为div2

4.1如果div1的position是static,说明div2位置是出现在哪里就显示在哪里。如下图:

div1的position是static,div2的position是absolute,这样div2就不受外层div的约束了。如果div2的position是relative,top:20px;但实际上,div2距离顶端是36px(大于20px),不知道是不是浏览器的bug,ie和Firefox都如此。
代码如下
<div style="position:static;width:600px;height:400px;background:#FFE4C4;">
position:static;width:600px;height:400px;background:#FFE4C4
	<div style="position:relative;top:20px;left:10px;width:500px;height:350px;background:#D2691E">position:absolute;top:20px;left:10px;width:500px;height:350px;background:#D2691E
	</div>
</div>


4.2如果div1的position是relative,这样div2的position不管是relative还是absolute,显示的效果基本是一样的,都是内层div针对外层div的位置。如下图:



不过这两者还有有区别的,如两张图片。如果div2的position是relative,top:20px;但实际上,div2距离顶端是36px(大于20px),但如果div2的position是absolute,top:20px;div2距离顶端的高度就精确的是20px。
代码如下
<div style="position:relative;width:600px;height:400px;background:#FFE4C4;">
position:relative;width:600px;height:400px;background:#FFE4C4
	<div style="position:absolute;top:20px;left:10px;width:500px;height:350px;background:#D2691E">position:absolute;top:20px;left:10px;width:500px;height:350px;background:#D2691E
	</div>
</div>


4.3如果div1的position是absolute,这样div2的position也是absolute,那么div2的位置实际上是一个相对位置。如下图:


5.如果div的position是fixed,就不用说了,其位置永远相对浏览器位置来计算。

6.问题
从div的嵌套可以看出:position:relative,top:20px;无论是上级div的position是什么属性,实际上距离顶端总是大于20px。解决方案也很简单,不用top而用margin来代替。或者根据实际情况微调下。

文章url:http://javapub.iteye.com/blog/733471
3
0
分享到:
评论
1 楼 w3260300 2013-10-16  
[/color]
" target="_blank">
[color=darkred]
" />
[/color]
" target="_blank">
[color=darkred]
" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="200">
 

相关推荐

    CSS 嵌套DIV布局(position属性)

    嵌套DIV布局,会牵扯到CSS的position属性 如果内层DIV将position属性设置为absolute,并设置left,和top等属性,还需要考虑外层DIV的position属性设置。 absolute:absolute绝对定位,直接指定top、left、right、...

    div+css整体布局

    综上所述,`div+css`整体布局涉及到HTML结构的构建、CSS样式的控制,特别是`float`属性的灵活应用和`div`的居中处理,这些知识点构成了网页布局的基础。通过深入理解和实践,可以创建出适应各种需求的高效、美观的...

    css+div控制表格 标签代码

    `div`元素常作为容器,通过CSS的`position`属性(如`relative`、`absolute`、`fixed`)配合`top`、`right`、`bottom`、`left`属性,可以实现表格的绝对定位,从而实现浮动表格或其他特殊布局效果。 最后,我们还...

    DIV布局十大技巧以及DIV盒子模型

    10. **CSS预处理器**:如Sass、Less等,它们扩展了CSS语法,允许变量、嵌套规则和混合等功能,简化`DIV`布局的样式编写和维护。 配合提供的图片资源,`盒子模型.jpg`可能展示了一个典型的`DIV`元素的盒子模型,包括...

    div style常用属性介绍及使用示例

    一、常用属性: 1、Height:设置DIV的高度。 2、Width:设置DIV的宽度。 例: 复制代码代码如下: &lt;div xss=removed&gt; &lt;/div&gt; 3、margin:用于设置DIV的外延边距,也就是到父容器的距离。 例: 复制代码代码如下: &lt;div...

    多个iframe,其中一个的div能够处于最上层显示

    4. 确保这个 `div` 的 `position` 属性不是默认的 `static`,而是 `absolute` 或 `fixed`,这样才能应用 `z-index`。 请注意,尽管这样可以解决大部分情况,但在某些情况下,浏览器的同源策略可能限制了跨 `iframe`...

    精通css+div

    这一章将深入讲解Div的使用,包括如何创建和定位Div,以及如何通过CSS属性(如display、position、float等)实现流式布局、网格布局和相对/绝对定位。同时,还会涉及Div的嵌套和组合,以实现复杂页面结构。 **第8章...

    css+div网页模板整站

    在本资料中,每个页面可能都由多个Div元素构成,这些元素通过嵌套和并列,形成页面的层次结构,从而实现动态和静态内容的排列。 在文件名称列表中,我们看到诸如“item_1739980815”等命名的文件,这些可能是每个...

    div分块和css

    - **嵌套**: 可以在一个`div`内嵌套多个`div`。 - **定位**: 使用CSS的定位属性(`position`, `top`, `left`等)可以实现复杂的布局效果。 - **浮动**: 利用`float`属性可以使`div`水平排列。 #### 三、CSS样式...

    关于DIV的各种样式

    通过`position`属性,我们可以将`&lt;div&gt;`设置为静态(默认)、相对、绝对或固定定位,从而实现元素在页面上的精确控制。 总结来说,`&lt;div&gt;`作为HTML中的基本容器元素,配合CSS的样式控制,可以实现丰富的网页布局和...

    用div+css模拟表格对角线

    同时,为了便于定位,将`position`属性设置为`relative`。 ```css .cell { width: 100px; height: 100px; border: 1px solid #ccc; /* 边框用来模拟表格的边框 */ position: relative; } ``` 3. **添加对角...

    div +cssdiv +cssdiv +cssdiv +cssdiv +cssdiv +css

    - `position`属性(如`static`、`relative`、`absolute`、`fixed`)用于设置元素的定位方式,结合`top`、`right`、`bottom`、`left`属性可以精确控制元素的位置。 4. **优化与实践**: - 避免过度使用`div`,应尽...

    DivCss代码

    通过研究这些例子,你可以深入理解DivCSS的工作原理,掌握如何结合Div和CSS创建美观且功能齐全的网页。 学习DivCSS不仅可以提升你的网页设计能力,还能帮助你更好地理解和应用前端技术栈中的其他部分,如JavaScript...

    css+div样式 源码

    - 分割内容:通过设置div的width、height、margin和padding属性,可以控制其在页面上的大小和位置。 - 布局:div可以通过display属性转换为行内元素或行内块元素,实现灵活的布局模式。 - 类与ID:为div添加类或...

    css+div二级目录

    1. **嵌套div**:要构建二级目录,我们通常会使用嵌套的div元素。一级目录是一个div,其中包含多个二级目录的div。每个二级目录div都可以独立设置样式,以形成不同的视觉效果。 2. **CSS选择器**:使用类(class)...

    DIV+CSS网页设计视频

    在本教程中,你将学习到如何定义选择器(如类选择器、ID选择器),以及如何使用属性和值来指定样式规则,比如`display`属性用于设置元素的显示方式,`position`属性用于定位元素,以及`float`和`clear`属性在布局中...

    Div 制作的SELECT

    // 替换 第 i 个 SELECT 中所有Option 为Ul嵌套LI元素 replaceOptions(i,selects[i].name); mouseSelects(selects[i].name); if (isIE){ selects[i].onclick = new Function("clickLabels3('"+selects...

    div+css源码

    4. 定位:使用`position`属性(如static、relative、absolute和fixed),可以精确控制元素在页面上的位置。 5. 盒阴影、文本阴影、渐变、过渡和动画:这些CSS3特性增加了网页的视觉效果和交互性。 6. 弹性盒模型...

    DIV+CSS下拉菜单

    2. 层叠和定位:通过`position`属性设置元素的位置,如`relative`(相对定位)、`absolute`(绝对定位)或`fixed`(固定定位),配合`top`、`right`、`bottom`、`left`属性调整位置。 3. 显示和隐藏:使用`display`...

Global site tag (gtag.js) - Google Analytics