Подтвердить что ты не робот

Как заставить div придерживаться нижней части родительского div?

Может ли кто-нибудь помочь мне сделать div#bottom придерживаться нижней части родительского div, поэтому, когда я нажимаю на кнопку внутри, это позволит мне отображать элементы из div#list выше самого себя?

Желательно, чтобы я хотел избежать JS, jQuery и т.д. или, по крайней мере, в макете:

<div class="wrapper">
   <div id="top">
     <ul>
      ...
      ...
     </ul>
   </div>
   <div class="bottom">
      <div id="button">
         <div id="list">
            <ul>
               <li>elem 1</li>
               <li>elem 2</li>
            </ul>
         </div>
      </div>
   </div>
</div>
4b9b3361

Ответ 1

.wrapper{position:relative;}
.bottom{position:absolute; bottom:0;}

Edited

Благодаря @centr0 и @T.J Crowder главное, чтобы понять здесь, что position:relative в .wrapper будет "содержать" любой элемент, имеющий position:absolute. Это как объявление границ для .bottom. Без position:relative в .wrapper, .bottom вырвется из этого div

Ответ 2

Я сталкиваюсь с аналогичной проблемой. Решение Val хорошо, но имеет один вопрос - внутренний div будет придерживаться дна, но он не повлияет на высоту parrent div, благодаря его "позиции: абсолютный"; (он выходит за пределы макета страницы).

Итак, вот мое расширенное решение для любого, у кого есть сходная проблема:

.wrapper {
    position: relative;
    padding-bottom: 50px;
}

.wrapper .bottom {
    position: absolute;
    bottom: 0px;
    height: 50px;
}

Как вы можете видеть, я установил высоту нижней части обложки .bottom. Недостатком является то, что высота нижнего колонтитула находится на двух местах. Но я думаю, что это хорошее решение, например, для списка продуктов, где фиксированная высота в нижнем колонтитуле окна (например, цена и т.д.).

Помните, что каждый раз, когда вы устанавливаете "position: absolute;", элемент будет абсолютно помещен против первого родительского div, который установил атрибут позиции. Или, возможно, против самой страницы.