100分送分的问题,刚学,css的absolute和relative的问题,少看一些资料明白,越看多,越不明白?

jiangjinsong 2007-12-20 05:22:15
我在网上看到这片文章http://blog.sina.com.cn/s/blog_4cf7ee9c01000cwy.html
其中说到:
Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的坐标原始点为原始点。如果设定TRBL并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由TRBL决定。
问题是如果设定父级position属性是absolute会怎样?
问题是如果设定父级position属性是relative会怎样?
Relative,CSS中的写法是:position:relative; 他的意思是绝对相对定位,他是参照父级的原始点为原始点,无父级则以BODY的原始点为原始点,配合TRBL进行定位,当父级内有padding等CSS属性时,当前级的原始点则参照父级内容区的原始点进行定位。
如果我的文档里面没有<body>这个变迁呢?
那当父级内没有padding等CSS属性呢?
问题是如果设定父级position属性是absolute会怎样?
问题是如果设定父级position属性是relative会怎样?
各位网友有没有比这个更好的资料!!!!!!!!!!!!!!
...全文
162 点赞 收藏 11
写回复
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
surpasslight 2007-12-25
不要多说
也不要多问,先自己实践,如果实践后还不了解的情况下再问!
这样会明白透彻!
回复
wesnow 2007-12-21
什么JB相對,絕對啊,我感覺那些網上的文章總是喜歡把簡單問題複雜化,好顯示出他們有多NB。有那么麻煩嗎?有你到網上去看那些SB文章的時間,你自己寫幾個不同的情況自己測試一下,什么都清楚了。
回复
position版本:CSS2  兼容性:IE4+ NS4+ 继承性:无
语法:
position : static | absolute | fixed | relative
取值:
static : 默认值。无特殊定位,对象遵循HTML定位规则
absolute : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义
fixed : 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置

说明:
检索对象的定位方式。
设置此属性值为 absolute 会将对象拖离出正常的文档流绝对定位而不考虑它周围内容的布局。假如其他具有不同 z-index 属性的对象已经占据了给定的位置,他们之间不会相互影响,而会在同一位置层叠。此时对象不具有外补丁( margin ),但仍有内补丁( padding )和边框( border )。
要激活对象的绝对(absolute)定位,必须指定 left , right , top , bottom 属性中的至少一个,并且设置此属性值为 absolute 。否则上述属性会使用他们的默认值 auto ,这将导致对象遵从正常的HTML布局规则,在前一个对象之后立即被呈递。
设置此属性值为 relative 会保持对象在正常的HTML流中,但是它的位置可以根据它的前一个对象进行偏移。在相对(relative)定位对象之后的文本或对象占有他们自己的空间而不会覆盖被定位对象的自然空间。与此不同的,在绝对(absolute)定位对象之后的文本或对象在被定位对象被拖离正常文档流之前会占有它的自然空间。放置绝对(absolute)定位对象在可视区域之外会导致滚动条出现。而放置相对(relative)定位对象在可视区域之外,滚动条不会出现。
内容的尺寸会根据布局确定对象的尺寸。例如,设置一个 div 对象的 height 和 position 属性,则 div 对象的内容将决定它的宽度( width )。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 position 。

示例:

div { position:relative; top:-3px }
<style>
#idParentDIV{width:100%;height:80px;padding:6px;background-color:buttonshadow;position:relative;}
#idDIV{width:80%;height:40px;background-color:#FF6633;color:#FFFFFF;padding:4px;margin:8px;bottom:9px;}
#idCodeDiv{width:100%;padding:4px;font-family:verdana,tahoma;margin:12px 0px 0px 0px;background-color:#EEEEEE;font-weight:bold;}
</style>

<script>
var sAdditional="margin : 4px ; bottom : 9px ;";
function rdl_change(e){
var oCodeDiv=document.all("idCodeDiv");
var oDiv=document.all("idDiv");
with (document.all("idSel")){
if (selectedIndex!=0) var sValue=options[selectedIndex].value;
else var sValue="static"
}
oDiv.style.position=sValue;
oCodeDiv.innerText=sAdditional+"\r\n"+"position : "+sValue+";";
}
</script>

<div id=idParentDIV><div id=idDIV>请从下方选择我的<b> position </b>值。</div></div>
<br>
<select id="idSel" onchange="rdl_change();">
<option value="null">---请选择---
<option value="static">static
<option value="absolute">absolute
<option value="relative">relative
</select>
<br>
<div id=idCodeDiv>margin : 4px ; bottom : 9px ;<br>position : static ;</div>
回复
yixianggao 2007-12-21
也许有帮助吧
DHTML参考手册
回复
yixianggao 2007-12-21
两个字“实践”!

俺更喜欢flow方式!
回复
nicholsky 2007-12-20
absolute是绝对定位,不占页面任何位置,父级(指所有父级)由里到外的对象中有某一个设置了absolute或relative,就会以此元素作为起点,如果全部都没有设absolute或relative就会以body为起点。
relative是相对定位,left、top正常来说和margin-left、margin-top差不多。

父级对象是absolute或relative都没分别,会以父级对象所有margin、padding、top、left全部计算来作为起点。

如果你的文档没有body,只能说是一个极之不符合的页面,但默认就有body的。以前我写过所有情况来测试过,这样才真正了解。
回复
jiangjinsong 2007-12-20
楼上的资料一般般,o(∩_∩)o...
回复
jiangjinsong 2007-12-20
资料不是很好,o(∩_∩)o...
回复
ddcatlee 2007-12-20
http://www.ddcat.net/blog/archives/2006/08/121.html
回复
YeLang2007 2007-12-20
这个东西我不是很懂,但我觉得实践很重要,不知道就去试试...

先帮你顶一下呀!!!!!!!!1
回复
xiaolei1982 2007-12-20
用不着什么资料,这个东西就是再看它怎么讲,不试不会明白,
去反复试嵌套的试就行了
回复
发动态
发帖子
CSS
创建于2007-09-28

5.9w+

社区成员

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
申请成为版主
社区公告
暂无公告