positioin定位问题

codeyell-com 2010-01-19 02:41:20

<div id="a" style="position:relative;width:400px;background:#ccc;clear:both;">
<div id="aa" style="position:absolute;background:#f00;left:0px;">您的问题得到解答并完成结帖操作,将返还您本帖50%可用分 </div>
</div>
<div id="b" style="position:relative;background:#00f;width:200px;clear:both;">bbb</div>


三个DIV,代码如上。
DIV a里面我设了clear:both并不管用,DIV b还是会覆盖DIV a 的内容。效果如下:


我想用absolute来控制DIV aa相对于DIV a的位置,不想用margin和padding。求解决办法。
...全文
183 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
semion1 2010-01-20
  • 打赏
  • 举报
回复
你对定位的了解还不够,多看看资料吧
semion1 2010-01-20
  • 打赏
  • 举报
回复
position : static | absolute | fixed | relative
取值:
static : 默认值。无特殊定位,对象遵循HTML定位规则
absolute : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义
fixed : 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置

Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始点为原始点。如果设定TRBL并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由TRBL决定。






一般来讲,网页居中的话用Absolute就容易出错,因为网页一直是随着分辨率的大小自动适应的,而Absolute则会以浏览器的左上角为原始点,不会应为分辨率的变化而变化位置。很多人出错就在于这点上出错。而网页居左其特性与Relative很相似,但是还是有本质的区别的。

Relative,CSS中的写法是:position:relative; 他的意思是绝对相对定位,他是参照父级的原始点为原始点,无父级则以BODY的原始点为原始点,配合TRBL进行定位,当父级内有padding等CSS属性时,当前级的原始点则参照父级内容区的原始点进行定位。





有时我们还需要依靠z-index来设定容器的上下关系,数值越大越在最上面,数值范围是自然数。当然有一点要注意,父子关系是无法用z-index来设定上下关系的,一定是子级在上父级在下。

semion1 2010-01-20
  • 打赏
  • 举报
回复
群号:93011124 长期招人~期待更多的网站爱好者的加入

心随梦想飞

来者就是朋友,这是个专门讨论网站设计及制作的群~~希望大家能互想学习,提高自己的能力!
cs5276 2010-01-19
  • 打赏
  • 举报
回复
用浮动布局不是更方便吗
codeyell-com 2010-01-19
  • 打赏
  • 举报
回复
不要跟A重叠
放在A的下面
[Quote=引用 7 楼 cs5276 的回复:]
还是不知道你想把div#b放在哪

[/Quote]
cs5276 2010-01-19
  • 打赏
  • 举报
回复
还是不知道你想把div#b放在哪
codeyell-com 2010-01-19
  • 打赏
  • 举报
回复
内容长度的变化的。高度定死了不行。

[Quote=引用 5 楼 kendyjack 的回复:]
给#a加个高度
[/Quote]
夜雨_Jason 2010-01-19
  • 打赏
  • 举报
回复
给#a加个高度
codeyell-com 2010-01-19
  • 打赏
  • 举报
回复
加了z-index那不DIV a 把DIV b遮住了吗?

[Quote=引用 3 楼 ad0128 的回复:]
加上:z-index

层叠等级越高,越上层
  <div id="a" style="position:relative;width:400px;background:#ccc;clear:both;z-index:2">
        <div id="aa" style="position:absolute;background:#f00;left:0px;">您的问题得到解答并完成结帖操作,将返还您本帖50%可用分    </div>
    </div>
    <div id="b" style="position:relative;background:#00f;width:200px;clear:both; z-index:1">bbb </div>
[/Quote]
ad0128 2010-01-19
  • 打赏
  • 举报
回复
加上:z-index

层叠等级越高,越上层
<div id="a" style="position:relative;width:400px;background:#ccc;clear:both;z-index:2">
<div id="aa" style="position:absolute;background:#f00;left:0px;">您的问题得到解答并完成结帖操作,将返还您本帖50%可用分 </div>
</div>
<div id="b" style="position:relative;background:#00f;width:200px;clear:both; z-index:1">bbb</div>
codeyell-com 2010-01-19
  • 打赏
  • 举报
回复
现在可以控制相对位置,但是B就把A盖住了。
我希望B在A的下面,而不是把A盖住。
cs5276 2010-01-19
  • 打赏
  • 举报
回复
不太明白你是什么意图
如果不想显示div#b可以把它隐藏啊。
现在可以控制div#aa相对于div#a的位置的。

61,112

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧