absolute和relative的几个Demo

这些例子最好通过FireFox结合FireBug调试查看

1、absolute让元素inline-block化


 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>absolute让元素inline-block化</title>
6 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
7 <link rel="icon" href="favicon.ico" type="image/x-icon" />
8 <style type="text/css">
9 body
10 {
11 font-family: ‘Microsoft YaHei‘;
12 font-size: 18px;
13 }
14
15 .div
16 {
17 padding: 10px;
18 margin-left: 20px;
19 margin-bottom: 10px;
20 background-color: #f0f3f9;
21 border: 8px solid #ffd800;
22 }
23
24 .abs
25 {
26 position: absolute;
27 }
28
29 .info
30 {
31 bottom: 10px;
32 right: 10px;
33 border-width: 8px 0 0;
34 border-radius: 8px 8px 0 0;
35 border-color: blue;
36 }
37
38 .info span
39 {
40 width: 200px; /*width无效,必须设置为block才有效!有3种方式>>>>1、display:block;2、float:left;3、position:absolute;*/
41 border: 1px solid #4cff00;
42 display: block;
43 /*float:left;*/
44 /*position: absolute;
45 left: 0;
46 top: 0;*/
47 }
48 </style>
49
50 </head>
51 <body>
52 <div class="div">
53 <img src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" />
54 <p>无absolute</p>
55 </div>
56 <div class="div abs">
57 <img src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" />
58 <p>absolute后</p>
59 </div>
60 <div class="div abs info">
61 <p>
62 说明:包裹性换种说法就是让元素inline-block化,<br />
63 例如一个div标签默认宽度是100%显示的,但是一旦被absolute属性缠上,<br />
64 则100%默认宽度就会变成自适应内部元素的宽度。
65 </p>
66 <h1>absolute 特性总结</h1>
67 <p>
68 1、脱离文档流<br />
69 2、宽和高均为0(FireBug查看布局可知)<br />
70 3、如果没有[left/right/top/bottom] 则待在原位(表现为一个没有长宽的参考点)<br />
71 4、如果指定[left/right/top/bottom] 则向上追溯到 relative或absolute父盒子,直至body后定位<br />
72 5、包裹其内部子元素,即让元素inline-block化<br />
73 </p>
74 <span>这是span标签,inline是没有宽度的,block后才有宽度</span>
75 </div>
76
77 </body>
78 </html>

2、absolute绝对定位的破坏性


 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
6 <link rel="icon" href="favicon.ico" type="image/x-icon" />
7 <title>absolute绝对定位的破坏性</title>
8 <style>
9 body
10 {
11 font-family: ‘Microsoft YaHei‘;
12 font-size: 18px;
13 }
14
15 .div
16 {
17 padding: 10px;
18 margin: 5px;
19 border: 8px solid #ffd800;
20 background-color: #f0f3f9;
21 float: left;
22 }
23
24 .abs
25 {
26 position: absolute;
27 /*没有翅膀是飞不走的,待在原位*/
28 /*
29 1、取消注释,插上翅膀,则会以body为参考物作left:0 top:0 位移
30 2、FireBug禁用翅膀,取消位移,回到原位!
31 */
32 /*left: 0px;
33 top: 0px;*/
34 }
35
36 .info
37 {
38 border-width: 8px 0 0;
39 border-radius: 8px 8px 0 0;
40 border-color: blue;
41 top: auto; /*复写abs以清空*/
42 left: 10px; /*复写abs以重置*/
43 bottom: 10px;
44 }
45 </style>
46 </head>
47 <body>
48 <div class="div">
49 <img src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" />
50 <p>图片无absolute</p>
51 </div>
52 <div class="div">
53 <img class="abs" src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" />
54 <p>
55 图片absolute后,absolute的参考物,为啥没有追溯到body,而是在本div中?<br />
56 因为没有指定left/top!没有翅膀是飞不走的!<br />
57 事实上参考物的确为body,只不过没有飞走!<br />
58 依然保持原位,貌似还在div中。
59 </p>
60 </div>
61 <div class="div abs info">
62 <p>说明:图片设置position:absolute属性后,父标签的高宽都塌陷了,连它的兄弟float都救不了。</p>
63
64 </div>
65 </body>
66 </html>

3、父盒子限魔大法


 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
6 <link rel="icon" href="favicon.ico" type="image/x-icon" />
7 <title>父盒子限魔大法</title>
8 <style>
9 body
10 {
11 font-family: ‘Microsoft YaHei‘;
12 font-size: 18px;
13 }
14
15
16 .box
17 {
18 width: 15em;
19 height: 10em;
20 background-color: #beceeb;
21 position: relative; /*父盒子限魔大法,父盒子真身还在文档流,纵云梯z-index飙升*/
22 /*position: absolute;*/ /*父盒子限魔大法,父盒子真身不在文档流,没有了宽和高,纵云梯z-index飙升*/
23 left: 100px;

24 top: 100px;
25 }
26
27 .box img
28 {
29 position: absolute; /*向上追溯absolute或relative,直至body*/
30 left: 20px;
31 top: 20px;
32 }
33 </style>
34 </head>
35 <body>
36 <div>
37 <p>说明:限制absolute以body为参考物,约束在拥有ablolute或relative属性的父容器</p>
38 </div>
39 <div id="target" class="box">
40 <img src="http://image.zhangxinxu.com/image/study/s/s128/mm3.jpg" />
41 </div>
42
43 </body>
44 </html>

4、relative最小影响原则(不遵循)


 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
6 <link rel="icon" href="favicon.ico" type="image/x-icon" />
7 <title>relative最小影响原则(不遵循)</title>
8 <style>
9 body
10 {
11 font-family: ‘Microsoft YaHei‘;
12 font-size: 18px;
13 }
14
15 .test
16 {
17 width: 25em;
18 margin: 2em auto;
19 }
20
21 .box
22 {
23 padding: 2em;
24 border: 1px solid #beceeb;
25 border-radius: 2px;
26 background-color: #f0f3f9;
27 position: relative;
28 }
29
30 .ok
31 {
32 color: green;
33 font-size: 6em;
34 position: absolute;
35 right: -11px;
36 bottom: -.5em;
37 }
38
39 .infodiv
40 {
41 background-color: #f0f3f9;
42 margin: 5px auto;
43 width: 800px;
44 }
45
46 .infoborder
47 {
48 /*position: absolute;*/ /*inline-block化,但是没有自然居中,即需要其他辅助居中*/
49 border-style: solid;
50 border-width: 8px 0 0;
51 border-radius: 8px 8px 0 0;
52 border-color: blue;
53 }
54 </style>
55 </head>
56 <body>
57 <div class="test">
58 <div class="box">
59 CSS relative相对定位的最小化影响原则
60 <strong class="ok">√</strong>
61 </div>
62 </div>
63
64 <div class="infodiv infoborder">
65 <p>
66 将需要绝对定位的元素单独放在relative属性的标签下,于是,<br />
67 relative相对定位就不会影响任何其他元素,仅仅是其内部的绝对定位元素。<br />
68 于是,上面的文字内容div还是那个普普通通的文字内容div,<br />
69 以后要改动什么东西就可以放心大胆的改,而不需要担心扔掉那个属性或是布局变了,<br />
70 里面原来绝对定位的元素位置偏移掉了。<br />
71 也就是牺牲一个标签增强扩展性和易维护性!
72 </p>
73 </div>
74
75 </body>
76 </html>

5、relative最小影响原则(遵循)


 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
6 <link rel="icon" href="favicon.ico" type="image/x-icon" />
7 <title>relative最小影响原则(遵循)</title>
8 <style>
9 body
10 {
11 font-family: ‘Microsoft YaHei‘;
12 font-size: 18px;
13 }
14
15
16
17 .test
18 {
19 width: 25em;
20 margin: 2em auto;
21 }
22
23 .box
24 {
25 padding: 2em;
26 border: 1px solid #beceeb;
27 border-radius: 2px;
28 background-color: #f0f3f9;
29 }
30
31 .rel
32 {
33 position: relative;
34 }
35
36 .ok
37 {
38 color: green;
39 font-size: 6em;
40 position: absolute;
41 right: -10px;
42 top: -1em;
43 }
44
45 .infodiv
46 {
47 background-color: #f0f3f9;
48 margin: 5px auto;
49 /*width: 800px;*/
50 }
51
52 .infoborder
53 {
54 position: absolute; /*inline-block化,但是脱离文档流后无法自然居中,居中的技巧就是transform*/
55 left: 50%;
56 -moz-transform: translateX(-50%);
57 -ms-transform: translateX(-50%);
58 -o-transform: translateX(-50%);
59 -webkit-transform: translateX(-50%);
60 transform: translateX(-50%);
61 border-style: solid;
62 border-width: 8px 0 0;
63 border-radius: 8px 8px 0 0;
64 border-color: blue;
65 }
66 </style>
67 </head>
68 <body>
69 <div class="test">
70 <div class="box">CSS relative相对定位的最小化影响原则</div>
71 <div class="rel"><strong class="ok">√</strong></div>
72 </div>
73 <div class="infodiv infoborder">
74 <p>
75 将需要绝对定位的元素单独放在relative属性的标签下,于是,<br />
76 relative相对定位就不会影响任何其他元素,仅仅是其内部的绝对定位元素。<br />
77 于是,上面的文字内容div还是那个普普通通的文字内容div,<br />
78 以后要改动什么东西就可以放心大胆的改,而不需要担心扔掉那个属性或是布局变了,<br />
79 里面原来绝对定位的元素位置偏移掉了。<br />
80 也就是牺牲一个标签增强扩展性和易维护性!
81 </p>
82 </div>
83 </body>
84 </html>

参考链接:CSS 相对|绝对(relative/absolute)定位系列

时间: 2024-10-06 01:38:21

absolute和relative的几个Demo的相关文章

Absolute and relative references in Excel

Keywords: Excel, fill multiple cells, formula, no series Absolute and relative references in Excel When you create a formula in Excel that refers to other cells in the worksheet, Excel will store the information about those cells as relative referenc

CSS position的absolute和relative的解析[转]

定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样.如果理清了定位的原理,那定位会让网页实现的更加完美. 定位的定义:在CSS中关于定位的内容是:      position:relative | absolute | static | fixed static(静态) 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级. relative(相对定位) 对象不可层叠.不脱离文档流,参考自身静态位置通过 top,bottom,

【webQD】☆★之详解position: absolute、relative属性

[webQD]☆★之详解position: absolute.relative 首先我们来看一下W3C对position的解释: 我们再看,W3C对position属性值的解释: ok,我们需要了解的是: 其中absolute和relative是最常用的,fixed用得也比较多(其中IE6并不支持fixed). 1.absolute(绝对定位) absolute是生成觉对定位的元素,脱离了文本流(即在文档中已经不占据位置),参照浏览器的左上角通过top,right,bottom,left(简称T

CSS+DIV布局中absolute和relative的区别

来源 :http://developer.51cto.com/art/201009/225201_1.htm   解释的很好.摘下来后面自己能看看. 区别:定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在,而定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在. position各个属性值的定义: 1.static:默认值.没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)

position属性absolute与relative 详解

position属性absolute与relative 详解 转自:http://www.cnblogs.com/jenry/archive/2007/07/15/818660.html 最近一直在研究javascript脚本,熟悉DOM中CSS样式的各种定位属性,以前对这个属性不太了解,从网上找到两篇文章感觉讲得很透彻,收藏下来,唯恐忘记. 一.解读absolute与relative  http://www.blueidea.com/tech/web/2006/4249.asp 很多朋友问过我

css absolute与relative的区别

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

怕忘记了CSS中position的absolute和relative用法

CSS2.0中的定位确实有时会把人弄糊涂,所以今天给它记下来,同时供以后查阅.下面写的内容有一部分借鉴了w3cschool和divcss5这两个官方网站,在此处特别的说明一下 CSS2.0中position主要用于HTML元素的定位,在实际设计中还是非常有用的.但是对于学习者来说都会遇到相对定位和绝对定位到底如何使用,非常打脑壳 不管再咋个打脑壳,大家首要的还是记住position的几个属性值 static: HTML元素的默认定位方式 absolute: 将对象从文档流中拖出,使用left,r

Div CSS absolute与relative的区别小结

absolute:绝对定位,CSS 写法“ position: absolute; ”,它的定位分两种情况,如下: 1. 没有设定 Top.Right.Bottom.Left 的情况,默认依据父级的“内容区域原始点”为原始点,上面例子红色部分(父级黄色区域有 Padding 属性,“坐标原始点”和“内容区域原始点”不一样). 2. 有设定 Top.Right.Bottom.Left 的情况,这里又分了两种情况如下: (1). 父级没 position 属性,浏览器左上角(即 Body)为“坐标原

Position属性四个值:static、fixed、absolute和relative的区别和用法

Position属性四个值:static.fixed.absolute和relative的区别和用法 在用CSS+DIV进行布局的时候,一直对position的四个属性值relative,absolute,static,fixed分的不是很清楚,以致经常会出现让人很郁闷的结果.今天研究了一下,总算有所了解.在此总结一下: 先看下各个属性值的定义: 1.static(静态定位):默认值.没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声