Прокручиваемый div под div

#javascript #html #css #scroll #jquery-mobile

#javascript #HTML #css #прокрутка #jquery-мобильный

Вопрос:

Ребята, у меня есть следующий HTML. Возможно ли #underdiv прокручивать под #topdiv ? Я хочу добиться эффекта наличия списка элементов и иметь возможность прокручивать его вверх и вниз, сохраняя #topdiv всегда видимым поверх него. Можно ли это сделать просто с помощью CSS или мне нужно добавить немного магии Javascript? У меня также есть jQuery и jQueryMobile (поскольку это предназначено для устройства iOS), включенные в файл, но я сохранил их, чтобы сделать HTML более простым.

Заранее спасибо, что помогли мне!

 <!DOCTYPE html> 
<html>
<head>
    <title>test</title>
    <style>
        #underdiv {
            background-color: red;
            position: relative;
            top: -40px;
            width: 80%;
            margin: 0 auto;
        }
        #topdiv {
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div id="topdiv">
        <h1>Random title</h1>
        <p>This is a random paragraph bla bla bla bla yada yada yada</p>
    </div>
    <div id="underdiv">
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            <li>Item 6</li>
            <li>Item 7</li>
            <li>Item 8</li>
            <li>Item 9</li>
            <li>Item 10</li>
            <li>Item 11</li>
            <li>Item 12</li>
            <li>Item 13</li>
            <li>Item 14</li>
            <li>Item 15</li>
            <li>Item 16</li>
            <li>Item 17</li>
            <li>Item 18</li>
            <li>Item 19</li>
            <li>Item 20</li>            
        </ul>
    </div>
</body>
</html>
  

Ответ №1:

это возможно, хотя полоса прокрутки также исчезает при;

 ul {
    margin: 0; 
    padding: 40px 0 0 30px;
}

#underdiv {
    background-color: red;
    width: 80%;
    margin: 0 auto;
    height: 200px;
    overflow: auto;
    margin-top: -40px;
}


#topdiv {
    background-color: yellow;
    padding: 1px; /* to stop margins collapsing */
    position: relative;
}
  

Ответ №2:

удалить position:relative из underiv и добавить position:fixed в topdiv. Посмотрите на результат здесь