为什么top设置百分比会不起作用呢?

为什么top设置百分比会不起作用呢?

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>打怪</title>
<style>
body{
position: relative;
}
.blood{
width: 600px;
height: 20px;
border: 6px solid black;
border-radius: 20px;
position: absolute;
left: 50%;
top: 5%;
transform: translate(-50%,0);
}
.line{
width: 600px;
height: 20px;
border-radius: 20px;
background-color: red;
}
img{
width: 600px;
position: absolute;
left: 50%;
top: 20%;
transform: translate(-50%,0);
}
</style>
</head>
<body>
<div class="blood">
<div class="line"></div>
</div>
<img src="史莱姆.jpg" alt="">
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,因为body元素的宽度是默认撑满一整行的。(因为电脑的分辨率不同,宽度也是不同的)(top值不生效仅限于单位是设置百分比,设置px就可以的)

http://img1.sycdn.imooc.com//climg/5d42d04a0001e48618930123.jpg

同学可以查看下并测试下,如果帮助到了你,欢迎采纳~祝学习愉快~

好帮手慕言 2019-08-01 10:53:54

同学你好,因为是相对于body元素进行定位。但是body元素又没有高度导致的。

建议:给body元素添加高度。

代码参考:
http://img1.sycdn.imooc.com//climg/5d4253ff0001943d03530245.jpg

页面效果:

http://img1.sycdn.imooc.com//climg/5d42543100010fe007870684.jpg

如果帮助到了你,欢迎采纳~祝学习愉快~

  • 提问者 胖嘘嘘 #1
    请问老师为什么width没有设置 left却可以生效呢?
    2019-08-01 17:30:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师