关于动态新冠疫情地图遇到的第二个问题

博主在实现动态地图时遇到CSS布局问题,发现设置的width百分比在绝对定位下无效,导致布局显示不正常。经过排查,了解到绝对定位的元素无法撑开父元素宽度。最终,博主通过将width改为auto,并使用left与right属性来调整宽度,成功解决了问题。此博客详细记录了解决过程和原因分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

宽度百分比无效问题

前言

博主跟着视频做动态地图,又双叒叕出问题了,视频里老师用 position: absolute绝对定位后设置width和height非常完美,但轮到了博主上手的时候,width设置就失效了QAQ

问题截图

在这里插入图片描述
我们可以看到,截图里面除了width,其他都是蓝色的(即已生效状态),最后出来的效果是这样的
在这里插入图片描述
奇丑无比(浅灰色是div的范围,深灰色是body底色),页面内除了高度是根据博主的百分比设定的,宽度并没有撑开,是根据标签内容的宽度展开的

问题原因

但是博主在网上查询以后,发现其他人的问题都是高度百分比失效(原因是没有设定父级的百分比),没有宽度百分比失效的,好了又是独一份的问题,但博主不会放弃!
根据相同思路,既然高度百分比失效是没有设定父级百分比的原因,那么宽度百分比失效是否也是这个原因呢?
于是博主重新为body与html标签设定高度百分比,但毫无用处,该丑的还是继续丑
博主毫无办法,只能放弃从网上找答案,开始调试代码,最后发现,只要删除

position: absolute;//绝对定位

这一行代码,宽度就毫无问题,那么,应该就是绝对定位的问题了
经过查询博主发现了原因:
父元素的宽度是由里面的子元素撑开的,而绝对定位的子元素由于脱离了父元素文本结构,所以是撑不开父元素的。不但撑不开,而且还会受到父元素宽度的限制。
于是就形成了图片中的丑样子

解决方法

那我们换种思路,既然无法通过设置宽度来撑开,那我们就将width改成auto模式,即不设置百分比,通过设置left与right来将宽度撑开,然后,我就成功啦!!!如图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值