html5+css+js中,大div包含一个小div,小div还在,大div不知道跑在哪里去了,怎么办呢

大div包含一个小div,小div还在,大div不知道跑在哪里去了

<div id="p3back33">
                <div id="p3one33">
                    <img src="img/qwe/zhubu.png" width="250px" onclick="dianone()" />
                    <img src="img/qwe/葱姜.png" width="250px" onclick="diantwo()" />
                    <img src="img/qwe/bingguang.png" width="250px" onclick="dianthree()"/>
                </div>
            </div>


            #p3back33{
                top: 100%;
                visibility: hidden;
            }

下面是css

#p3back33 {
    background: url(../img/qwe/bg2.png);
    width: 100%;
    height: 100%;
    background-size: 100% 100%;

}

#p3one33 {
    position: absolute;
    top: 67%;
    left: 13%;
}

我自己再怎么改,大div和小div就都跑了
新人,bug太多
图片说明

把visibility: hidden;删掉

  1. 如果p3back33 的父级标签没有设置高度的话,这个100% 是无效的,且p3one33 你设置了绝对定位,p3back33里面就相当于没有任何东西可以撑起高度,高度为0,p3back33标签没跑只是你没有看到罢了;

  2. p3one33 标签跑了是因为你的定位问题,它的父标签没有相对定位所以会一直往上一级找,直到body和HTML

还有新人的话最好先去了解下相对定位、绝对定位、固定定位等用法和原理

将#p3back33的width:100%改为width:100vw;height:100%改为height:100vh;。
同时你没有给#p3back33添加position属性,所以top: 100%;是无效的,应当添加position:relative;.
在给#p3one33添加了position:absolute;属性后,需要给#p3one33添加width和height属性,否则为0;

给大的div添加个背景或者边框线,看看在什么位置呗,然后浏览器检查下看看是什么情况

给p3back33添加css:
position:relative试试

#p3one33使用了绝对定位,导致该元素脱离文档流,从而引起父级#p3back33内部无任何元素,无法撑开父级#p3back33的高度,所以不是父级div不在了,而是父级div高度为0了,可以设置父级高度为100vh,或者修改子集div的定位方式