章节
问答
课签
笔记
评论
占位
占位

Relative与Absolute组合使用

小伙伴们学习了12-6小节的绝对定位的方法:使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,大家有没有想过可不可以相对于其它元素进行定位呢?答案是肯定的,当然可以。使用position:relative来帮忙,但是必须遵守下面规范:

1、参照定位的元素必须是相对定位元素的前辈元素:

<div id="box1"><!--参照定位的元素-->
    <div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>

从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。

2、参照定位的元素必须加入position:relative;

#box1{
    width:200px;
    height:200px;
    position:relative;        
}

3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

#box2{
    position:absolute;
    top:20px;
    left:30px;         
}

这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。
 

任务

我也来试一试:我们把右侧任务区中的box4当做是图片的讲解文本。

具体要求:

1、把box4定位到图片(box3)的底部。

效果图如下:

?不会了怎么办

1、相对于底部对齐使用bottom。

参考代码如下:

#box3{
    width:200px;
    height:200px;
    position:relative;           
}
#box4{
    width:99%;
    position:absolute;    
    bottom:0;
    left:0; /*这条css样式可以省略*/        
}

 

||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最赞回答 / 慕圣3267794
box4是box3的子元素,所以是相对于box3进行定位。我们需要的是自己在box3中使用position:relative,在box4中使用position:absolute,这样就可以定位二者的关系。它上面的box1和box2只是样例,其实不用管的。

已采纳回答 / qq_慕侠5047639
用css样式即可

最赞回答 / 千与千寻l
absolute:相当于一个块被扔到另一个地方去了 relative:可以当作一个立方体的房子发生了歪斜,从正上方看,只是房顶偏移了,但下面的底落还在那里,底下的格局没有发生改变一个不保留地基,一个保留地基,看你需不需要呗

已采纳回答 / 醉流年灬飒月
display:relative; display:absolute;大哥  哪有这个属性?position才对

最赞回答 / 仇九
在此处,设置成100%和设置成200px的效果是一样的。但是你会发现红框无法重合,原因通俗来讲是:box4是box3的子元素,box4的左上角那个像素点与box3内的元素的最左边(而非box3的边框)的像素重合·,这样导致boxd4的边框的最右端比box3的边框的最右端多出2个像素(div中border设为2px时多出2个像素点,若border设为1px时看起来多出来1个像素点)。但你发现多出来不止2个像素,其实就是2个像素,看起来中间有一条白线的原因是浏览器的显示问题,box3最右边的那条边框与box4...

最新回答 / Dancing_code
absolute定位的定义就是:相对于其最接近的一个具有定位属性的父包含块进行绝对定位所以除了最外面的设置为relative,内部的都设置成absolute就好拙见

最新回答 / weixin_精慕门2457860
内联块状元素是元素级别的,只针对元素级别的设置,而且内联块状元素同时具备块级元素和内联元的特点,和其他元素在一行且高度宽度行高不可设置relative和absolute都属于模型级别的,主要处理整个界面的布局你地26行的display:block;把内联块状元素又改成了块级元素,而块级元素要求独占一行,所以左上角会有空白是这个意思吗

最新回答 / weixin_慕勒6534928
<...图片...>这样就行了,top:50%,这给top的数值你自己随便设置,但要记得写单位

最新回答 / 小鱼鱼同学
问题不是box1和box3设置宽度的问题,你的box1和box3里面都没写position:relative,因此box2和box4的宽度与box1和box3没有关系。其次box2的宽度是自适应的(你可以在里面多写几个字,它还会变宽),box4里面的代码<width:99%>意思是设置宽度为浏览器窗口的百分之99.

最赞回答 / 慕慕2548037
刚提问就又像起来了 。。。

已采纳回答 / Fidd
1.默认情况由于div元素是块级元素,另起一行,因此div子元素出现在图片下方,如第二幅图所示;2.第一种情况是给子元素设置absolute,改变了默认的流模型,更改了子元素相对于父元素的位置,使子元素底部相距父元素为0,表现为第一幅图情况;3.给子元素设置relative,那么子元素只是相对于自己原来的位置移动,然后设置距离自己原来的位置底部为0,相当于没有改变位置,所以和第一种默认情况没什么两样。

最新回答 / Johnson
157px这个好像要自己调,这里不给出是不完美的地方

最新回答 / blue_clown
继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。个人理解是:对box3的定义是用class特指box3这个div的,虽然box4包含在box3中但它是相对独立的,box4也有class定义,也定义了一个宽,会不会是权值问题?只有例如div{width:200px;height:200px;}这样使用的div都会继承宽和高
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言