css中配置position: fixed会导致滚动条被遮挡该怎么解决?

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
    <div style="box-sizing: border-box; position: fixed; border: 1px solid red; left: 0; right: 0; top: 0; bottom: 0; overflow: auto;   ">
        <div style="box-shadow: inherit; position: inherit; left: 0; right: 0; background-color: lightgray;">bar</div>
        <div style="margin-top: 32px;">
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
        </div>
    </div>
</body>
</html>

image.png
可以看到图中绿色框标记的部分的滚动条被position样式为fixed的div遮挡了,这个问题该怎么解决呢?

阅读 11.4k
3 个回答

试试将 overflow: auto; 改为 overflow:overlay;
不过你这个布局的设计挺奇怪的,为什么是一整页fixed呢?

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
<div style="box-shadow: inherit; position: fixed; left: 0; right: 0; background-color: lightgray;">bar</div>
    <div style="box-sizing: border-box; position: fixed; border: 1px solid red; left: 0; right: 0; top: 32px; bottom: 0; overflow: auto;   ">
        
        <div>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>1</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
            <p>2</p>
        </div>
    </div>
</body>
</html>
推荐问题
宣传栏