Я не знаю, что вы используете в качестве календаря, но это должно помочь вам начать ..
position: absolute;
всегда reffers к родителю position: relative;
, если у вас нет какой-либо он будет используйте <html>
как относительный, поэтому он не сходит, когда вы прокручиваете.
Что я сделал - это добавить контейнер position: relative;
, чтобы держать календарь всегда рядом с текстовым полем, даже если вы прокручиваете.
Here is a page about CSS positioning, вы должны прочитать его, это очень важно ..
.container{
position: relative;
}
.calender{
width:200px;
}
.popup{
position:absolute;
top:20px;
left:0;
width:980px;
overflow:auto;
height:500px;
}
<br /><br /><br /><br /><br /><br /><br /><br />
<div class="container">
<input class="calender" type="text" value="sdsds">
<div class="popup">
<div style="width: 40px; height:40px; background-color:red;"></div>
</div>
</div>
</div>
<br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
EDIT: Я снова прочитал ваш вопрос, и я понял, что вам это нужно в том же даже если вы прокручиваете, я не уверен, что это ожидаемое поведение, но вот еще один пример и небольшое объяснение.
position: fixed;
Allways reffers в окно браузера в качестве родителя любого родителя position: relative;
не influentiate на этом позиционировании ..
.container{
position: relative;
}
.calender{
width:200px;
}
.popup{
position:fixed;
top: 100px;
left: 8px;
width:980px;
overflow:auto;
height:500px;
}
<br /><br /><br /><br />
<div class="container">
<input class="calender" type="text" value="sdsds">
<div class="popup">
<div style="width: 40px; height:40px; background-color:red;"></div>
</div>
</div>
</div>
<br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
Возможно, попробуйте 'fixed', а не' absolute' – Andrew
Посмотрите на мой ответ, но это одна из альтернатив, которая может заинтересовать [ miguelmpn