2016-10-19 4 views
1

Я пытаюсь сделать что-то очень простое.
меня div с прокруткой, и я хочу, накладываемое ДИВ будет охватывать все высоту, включая область прокрутки. Я пробовал min-height:100% (как в this question), но он не работает.CSS - наложение div height: 100%, включая область прокрутки, не работает

Ниже приведен пример https://jsfiddle.net/svfukxjd/2/

.main { 
 
    height: 300px; 
 
    width: 150px; 
 
    background: red; 
 
    overflow: auto; 
 
    position: relative; 
 
} 
 
.cover { 
 
    position: absolute; 
 
    height: 100%; 
 
    width: 100%; 
 
    top: 0; 
 
    bottom: 0; 
 
    background: green; 
 
    opacity: 0.5; 
 
}
<div class="main"> 
 
    <div> 
 
    Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    </div> 
 
    <div class="cover"> 
 

 
    </div> 
 
</div>

ответ

3
  1. Добавить в cover как ребенок в DIV, который имеет свое содержание.

  2. Позиция cover относительно в DIV контента с помощью:

    .main > div { 
        position: relative; 
    } 
    

Позвольте мне знать ваше мнение по этому вопросу. Благодаря!

.main { 
 
    height: 300px; 
 
    width: 150px; 
 
    background: red; 
 
    overflow: auto; 
 
    position: relative; 
 
} 
 
.main > div { 
 
    position: relative; 
 
} 
 
.cover { 
 
    position: absolute; 
 
    height: 100%; 
 
    width: 100%; 
 
    top: 0; 
 
    bottom: 0; 
 
    background: green; 
 
    opacity: 0.5; 
 
}
<div class="main"> 
 
    <div> 
 
    Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <br>Test 
 
    <div class="cover"> 
 
    </div> 
 
    </div> 
 
</div>

0

IT может быть решение вашей проблемы Но вы должны немного изменить структуру. fiddle

Add .cover to inside div containing test 
2

Изменение высоты от height:100%; до height:100vh;

.cover 
{ 
    position:absolute; 
    height:100vh; 
    width:100%; 
    top:0; 
    bottom:0; 
    background:green; 
    opacity:0.5; 
}