css如何让元素始终固定在另一个元素上面,无论元素的长度有多少

<div class="planItem">
        <div class="planSelect">
        </div>
</div>

css:
.planItem{
        width: 100px;
        height: 50px;
        text-align: center;
        float: left;
        position: relative;
    }
.planSelect{
        position: absolute;
        top: -50px;
        right: -70%;
        display: flex;
        background-color: #fff;
        padding: 10px;
    }

clipboard.png

clipboard.png

因为planselect还有一个箭头对着planitem,感觉我这种写法如果planSelect变长,它的箭头就不会对其planitem,有没有更好的方法,让planSelect无论长度如何改变,始终居中正对planItem

阅读 10k
7 个回答
.planSelect{

position: absolute;
top: -50px;
left: 50%;
transform: translateX(-50%);;
background-color: #fff;
padding: 10px;

}

无图无真相,发个截图看看

.planItem{
    position: relative;
}
.planItem:after{
    content:'';
    position: absolute;
}

你可以试试这样写
.planSelect{

position: absolute;
top: -50px;
right: 50%;
transform: translateX(-50%);
display: flex;
background-color: #fff;
padding: 10px;

}
受教了

css有个属性叫子绝父相,就是说,你要被定位的元素添加相对定位,你要定位的元素添加绝对定位。就会无论什么情况都不会跑偏了

新手上路,请多包涵

给元素直接父元素添加绝对定位 给子元素添加相对定位就行

left 50%
然后margin-left= - 自身宽度/2

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏