打印

CSS入门7:css元素定位

1. position:static|无定位
position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位
example:
复制内容到剪贴板
代码:
#div-1 {
position:static;
}
2. position:relative|相对定位
使用position:relative,就需要top,bottom,left,right4个属性来配合,确定元素的位置。
如果要让div-1层向下移动20px,左移40px:
example:
复制内容到剪贴板
代码:
#div-1 {
position:relative;
top:20px;
left:40px;
}
如果用到相对定位,紧随他的层divafter是不会出现在div-1的下方,而是和div-1在同一个高度出现。

可见, position:relative;并不是很好用。

3. position:absolute|绝对定位
使用position:absolute;,能够很准确的将元素移动到你想要的位置,
让我将 div-1a 移动到页面的右上角:
example:
复制内容到剪贴板
代码:
#div-1a {
position:absolute;
top:0;
right:0;
width:200px;
}
使用绝对定位的div-1a层前面的或者后面的层会认为这个层并不存在,丝毫不影响到他们。所以position:absolute;用于将一个元素放到固定的位置很好用,但是如果需要div-1a层相对于附近的层来确定位置就不要实现了。
*这里有个Win IE的bug需要提到,就是如果为绝对定位的元素定义一个相对的宽度,那么在IE下它的宽度取决于父元素的宽度而不是整个页面的宽度。
4. position:relative + position:absolute|绝对定位+相对定位
如果给父元素(div-1)定义为position:relative;子元素(div-1a)定义为position:absolute,那么子元素(div-1a)的位置将相对于父元素(div-1),而不是整个页面。
让div-1a定位于div-1的右上角:
example:
复制内容到剪贴板
代码:
<div id="div-1">
    <div id="div-1a">
    this is div-1a element.
    </div>
this is div-1 element.
</div>
复制内容到剪贴板
代码:
#div-1 {
position:relative;
}
#div-1a {
position:absolute;
top:0;
right:0;
width:200px;
}
5. two column layout|两列布局
让我们实践position:relative + position:absolute的理论,实现两列布局。
example:
复制内容到剪贴板
代码:
<div id="div-1">
    <div id="div-1a">this is the column-one</div>
    <div id="div-1b">this is the column-two</div>
</div>
复制内容到剪贴板
代码:
#div-1 {
position:relative;/*父元素相对定位*/
}
#div-1a {
position:absolute;/*子元素绝对定位*/
top:0;
right:0;
width:200px;
}
#div-1b {
position:absolute;/*子元素绝对定位*/
top:0;
left:0;
width:200px;
}
注意,在这个例子中会发现父元素的告诉不会随着子元素的告诉变化,所以如果父元素的背景和边框需要定义一个足够高的高度才能显示出来。

6.float|浮动对齐
使用float定位一个元素有float:left;&float:right;两种值。这种定位只能在水平坐标定位,不能在垂直坐标定位。而且让下面的元素浮动环绕在它的左边或者右边。
example:
复制内容到剪贴板
代码:
#div-1a {
float:left;
width:200px;
}
7.make two clumn with float|浮动实现两列布局
如果让一个元素float:left;另一个float:right;控制好他们的宽度,就能实现两列的布局效果。
example:
复制内容到剪贴板
代码:
#div-1a {
float:left;
width:150px;
}
#div-1b {
float:left;
width:150px;
}
8.clear float|清除浮动
如果你不想让使用了float元素的下面的元素浮动环绕在它的周围,那么你就使用clear,clear有三个值,clear:left;(清除左浮动),clear:right;(清除右浮动),clear:both;(清除所有浮动)。
example:
复制内容到剪贴板
代码:
<div id="div-1a">this is div-1a</div>
<div id="div-1b">this is div-1b</div>
<div id="div-1c">this is div-1c</div>
复制内容到剪贴板
代码:
#div-1a {
float:left;
width:190px;
}
#div-1b {
float:left;
width:190px;
}
#div-1c {
clear:both;
}
至此,这个css的定位部分就结束了,你可以动手体会体会加深印象。

2006-07-04 update
z-index : auto | number

用于设置相对和绝对定位元素的"内外"位置,数值越小的在最内层,外层的将覆盖内层.
Eg.
复制内容到剪贴板
代码:
E { position:absolute; z-index:3; width:6px; }
查看实例

 提示:您可以先修改部分代码再运行
[ 本帖最后由 greengnn 于 2006-8-29 13:27 编辑 ]
本帖最近评分记录
blog Web标准化交流会 WEB标准群:46077068
很好的一系列入门文章..很适合我们这种菜鸟朋友...
鲁迅说,作家比医生能救更多中国人。我觉得,游戏比教育能救更多现代人。
谢谢版主!
感谢....
antflash.com  蚂蚁-博客
感谢

TOP

感谢,试了一下
请问相对定位的“相对”是怎么理解呢?

TOP

学习中。。。。。。

TOP

首先谢谢楼主


但是.....

你所列的例子代码过于精简,照你的代码试贴了一下,感觉没有什么太大的反应,(就是不能明显看到它们的作用),最好能在再代码下面贴个实例或者图什么的,这样比较好懂些,呵呵,新手就是这样,见笑了!

TOP

谢谢斑竹咯。。。学习了。。。

TOP

3Q

TOP

茅塞顿开,多谢谢!!!!!!!!!!!!!

TOP

这篇文章使我受益匪浅,谢谢版主~
从css入门1到七,终于让我领略到div的魅力,尤其看到最后入门7的时候,让我真正的踏进了web的世界~!

在这里由衷的说一声,真的非常谢谢版主~!
小猪嘟嘟

TOP

学习学习
这是小弟的网页看看行不http://www.meiuu.com

TOP

好教材!

TOP

GOOD....
かわいい娜、chenvii.cn/about

TOP

又是一个好贴!
learn css ing

TOP

学习了.
5秒网,快速的选择
www.5miao.net

TOP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>greengnn&#39;s space | web design :: web develop :: web standard</title>
<style type="text/css">
*{font-size:11px;font-family:verdana,tahoma;}
#idParentDiv{width:50%;height:120px;padding:6px;background-color:#666;position:relative;}
#idDiv1{width:160px;height:80px;background-color:#F60;padding:6px;position:absolute;z-index:3;left:9px;top:9px;z-index:6;}
#idDiv2{width:120px;height:80px;background-color:#f00;padding:6px;position:absolute;z-index:3;right:9px;bottom:9px;z-index:4;}
#idDiv3{width:140px;height:80px;background-color:#fff;padding:6px;position:absolute;z-index:3;left:150px;top:25px;z-index:5;}
#idCodeDiv{width:100%;padding:4px;margin:12px 0px 0px 0px;background-color:#EEEEEE;font-family:Courier New;}
</style>
</head>
<body>
<div id="idParentDiv">
       <div id="idDiv1"><img src="http://www.blogbus.com/images/site-v3/1kg_logo.gif" style="border:1px solid #FFFFFF;"/><br/>z-index : 6 ; </div>
       <div id="idDiv2"><img src="http://www.blogbus.com/images/site-v3/1kg_logo.gif" style="border:1px solid #FFFFFF;"/><br/>z-index : 4 ; </div>
       <div id="idDiv3"><img src="http://www.blogbus.com/images/site-v3/1kg_logo.gif" style="border:1px solid #FFFFFF;"/><br/>z-index : 5 ; </div>
</div>
</body>
</html>

这些代码其中的这段在里面是启到一个什么做用?(刚接触DIV+CSS)
#idCodeDiv{width:100%;padding:4px;margin:12px 0px 0px 0px;background-color:#EEEEEE;font-family:Courier New;}

还有 z-index:3 这数值我改他也没看出有什么变化,各位能解释一下这是什么作用,3个DIV中都有用到z-index:3
可我用DW打开CSS样式也没见过有3这个数值,谢谢各位!

TOP

昨天晚上看完了,的确是好贴!
有些知识点值得推敲~~
谢谢楼主!

TOP

谢谢,好帖子,不过有待于实践啊!

TOP

郁闷中。。

为什么大家看了跟我感觉完全不一样呢?我看了之后还是对整个CSS布局很混乱。仍然不知道要如何定位。比较什么时候用到浮动定位什么时候用到绝对定位。我觉得网页发展到标准化对我们以前用惯了table的人来说最难的就是布局了。应该怎么样才能把布局学好呢?请问还有没有更详细更多的CSS布局的教程?

TOP

刚开始接触 有点迷茫
我行我素!

TOP

GOOD学习中

TOP

不是很仔细。。要是仔细就更完美了。。。
需要照顾

TOP

引用:
原帖由 feng4ever 于 2006-5-4 17:58 发表
很好的一系列入门文章..很适合我们这种菜鸟朋友...
是很适合我哦~

TOP

哈哈。。。。不错哦
http://www.qlili.com 个人站帮点啊

TOP

引用:
如果用到相对定位,紧随他的层divafter是不会出现在div-1的下方,而是和div-1在同一个高度出现。
测试的结果好象不是这样!
个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!

TOP

恩 好东东!!

TOP

许多东西,.要自己去实践才会懂得的,
只看不动手,只想不去做,是懂不了DIV+CSS的
另外要存好一些资料在机器里,或是手边拿有学习的书
人渣中的战斗机...

TOP

谢谢楼主
学习一下

TOP