鍍金池/ 問答/HTML/ css里面設置滾動條用的overflow-y,可是里面有用到了position就

css里面設置滾動條用的overflow-y,可是里面有用到了position就不氣作用了怎么辦?

不加滾動條時,樣式是:

clipboard.png
但是列表是要加上下的滾動條,加了以后就變成了

clipboard.png
里面的定位就不生效了 ,誰知道該如何解決???試了很多辦法了 沒用

回答
編輯回答
未命名

你層級有問題,而且有滾動條的div不能有relative

2018年6月12日 06:14
編輯回答
嘟尛嘴

建議你這種就把窗口寫在body里面吧,讓彈窗基于body position fixed定位,都通用一個,點擊時獲取你點擊的event clientX,clientY坐標,然后動態(tài)賦值給彈窗的left和top。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .box{
                width: 200px;
            }
            ul{
                overflow-y: auto;
                height: 100px;
                overflow-x: hidden;
            }
            ul li{
                position: relative;
                width: 200px;
            }
            .a{
                position: fixed;
                background: #FFF;
                z-index: 100;
                display: none;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <ul>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
                <li>11111</li>
            </ul>
        </div>
        <div class="a">jjjjjffffffffffjj</div>
        <script>
            var list = document.querySelectorAll('li');
            var a = document.querySelector('.a')
            list.forEach(function(el){
                el.onclick=function(event){
                    a.style.display = 'block';
                    console.log(el.offsetTop)
                    a.style.top =el.offsetTop+'px';
                    a.style.left =el.offsetLeft+el.offsetWidth/2+'px';
                    //a.style.left = event.clientX+'px';
                    //a.style.top = event.clientY+'px';
                }
            })
        </script>
    </body>
</html>
2018年6月8日 06:16
編輯回答
陌離殤

樓主的問題解決了嗎 我現在也遇到了這個問題,好煩?。?/p>

2017年1月4日 14:31
編輯回答
你好胸

贊同二樓的解決方法,靈活;而且這個項目里,類似的彈出框很多的話,還可以專門寫個這樣的組件,方便使用~

2017年6月28日 11:12