vue3 dom 元素 最侧的 下拉菜单跑外面去了,有什么合理的 解决办法?

弄了一个 顶部导航,hover 弹出的下拉菜单
在最侧边的 就跑到外面去了,单独调节位置也是可以的,但觉的很Low
以后也要用到 鼠标右键菜单,也不可能去一个个调节。
请教合理的解决办法。
这个 dom元素 一般是position aboslute , 可否有什么语句在css或 scss中, 判断是屏幕边上就搞整位置

另外 我用了这个方法,F12 提示是 建议不要用这个方法
  window.onresize = ()=>{ // 监听屏幕大小, 根据高度来调整 表格单页的高度
    currentHeight.value= window.innerHeight
  }

<!doctype html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta charset="UTF-8" />
<style type="text/css">
#menu,#menu ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    
}
#menu:after {
    content:"";
    display: block;
    clear: both;
}
#menu>li {
    position: relative;
    width: 300px;
    height: 20px;
    float: left;
    background-color: #9ff;
    transition: background-color 300ms;
}
#menu>li:hover {
    background-color: #9cf;
}
#menu>li>ul {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #cff;
    display: none;
}
#menu>li:hover>ul {
    display: block;
}
#menu>li li:hover {
    background-color: #99f;
}
</style>
</head>
<body>
<ul id="menu">
    <li>菜单1
        <ul>
            <li>子菜单1-1</li>
            <li>子菜单1-2</li>
            <li>子菜单1-3</li>
            <li>子菜单1-3</li>
        </ul>
    </li>
    <li>菜单1
        <ul>
            <li>子菜单1-1</li>
            <li>子菜单1-2</li>
            <li>子菜单1-3</li>
            <li>子菜单1-3</li>
        </ul>
    </li>
    <li>菜单1
        <ul>
            <li>子菜单1-1</li>
            <li>子菜单1-2</li>
            <li>子菜单1-3</li>
            <li>子菜单1-3</li>
        </ul>
    </li>
    <li>菜单1
        <ul>
            <li>子菜单1-1</li>
            <li>子菜单1-2</li>
            <li>子菜单1-3</li>
            <li>子菜单1-3</li>
        </ul>
    </li>
    <li>菜单2
        <ul>
            <li>子菜单2-1</li>
            <li>子菜单2-2</li>
            <li>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg</li>
        </ul>
    </li>
    <li>菜单3
        <ul>
            <li>111111111111111111111111111111zbbbbbbzzzzzzzzzzza</li>
            <li>子菜单3-2</li>
            <li>子菜单3-3</li>
        </ul>
    </li>
</ul>

<script type="text/javascript">
var dr = document.querySelectorAll("#menu>li");
for (var i = 0; i < dr.length; i++) {
    dr[i].addEventListener("mouseenter", function (e) {
        var ul = this.querySelector("ul");
        ul.style.left = "0px";
        ul.style.right = "auto";
        var er = ul.getBoundingClientRect().right;
        var ww = window.innerWidth;
        if (er > ww) {
            ul.style.right = "0px";
            ul.style.left = "auto";
        }
    }, false);
}
</script>
</body>
</html>



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>双飞翼</title>
    <style>
        .box {
            width: 100%;
            height: 200px;
            background-color: skyblue;
        }

        .text {
            float: left;
            margin: 0 300px 0 300px;
            height: 200px;
        }

        .left {
            width: 300px;
            height: 200px;
            background-color: #7aff9b;
            /*margin-left 一个负值,就会挤到上边*/
            margin-left: -100%;

        }

        .right {
            width: 300px;
            height: 200px;
            background-color: rgba(0, 0, 0, .1);
            /*右边的框,只需给他的margin-left一个负的宽度,就能挤上去*/
            margin-left: -300px;
            opacity: 0.6;
        }

        .col {
            float: left;
        }
    </style>
</head>

<body>
    <div class="box col">
        <div class="text">
            main
        </div>
    </div>
    <div class="left col">left</div>
    <div class="right col">right</div>
</body>

</html>
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632