Прижатие элемент к нижнему правому краю блока(с overflow-y: auto;)?

112
01 августа 2019, 02:50

Подскажите, пожалуйста, как прижать кнопку (.btn_close__bonus) к нижнему правому краю блока (.bl_bonus__downSide). Вот на этом примере

var btnBonusInfo = $(".btn_bonus__info"), 
  btnCloseBonus = $(".btn_close__bonus"); 
 
btnBonusInfo.on("click", function() { 
  $(this).parent(".bl_bonus").toggleClass("bl_bonus__active"); 
}); 
btnCloseBonus.on("click", function() { 
  $(this).closest(".bl_bonus").removeClass("bl_bonus__active"); 
});
.bl_bonus { 
  position: relative; 
  width: 100%; 
  max-width: 538px; 
  height: 444px; 
  border-radius: 6px; 
  margin-bottom: 40px; 
  background-color: #3c3f41; 
  border: 1px solid #d1c8ab; 
  box-sizing: border-box; 
} 
 
.bl_bonus__img { 
  width: 100%; 
} 
 
.btn_bonus__info { 
  left: 0; 
  top: 0; 
  width: 50px; 
  height: 50px; 
  border-radius: 0 0 50% 0 
} 
 
.btn_bonus__info, 
.btn_close__bonus { 
  position: absolute; 
  box-sizing: border-box; 
  border: 2px solid #555; 
  background-color: #3c3f41; 
  outline: 0; 
  z-index: 10; 
  cursor: pointer; 
} 
 
.btn_close__bonus { 
  top: initial; 
  left: initial; 
  display: block; 
  bottom: 0; 
  right: 0; 
  width: 30px; 
  height: 30px; 
  border-radius: 0; 
  z-index: 3; 
} 
 
.btn_close__bonus:after { 
  content: "X"; 
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
  color: #f00; 
  font-size: 30px; 
} 
 
.bl_bonus__upSide { 
  position: relative; 
  height: 100%; 
  min-height: 500px; 
  background: #09161f; 
  z-index: 4; 
} 
 
.bl_bonus__upSide:after { 
  content: ""; 
  display: table; 
  clear: both; 
  width: 100% 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__upSide { 
  z-index: 5 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__upSide { 
  z-index: 3 
} 
 
.bl_bonus__img { 
  display: block; 
  width: 100%; 
  min-height: 40px 
} 
 
.bl_bonus__wrapper { 
  width: 100%; 
  margin-top: 30px; 
  padding: 0 5px; 
  vertical-align: top 
} 
 
.bl_bonus__name, 
.bl_bonus__value { 
  text-align: center; 
  text-transform: uppercase 
} 
 
.bl_bonus__name { 
  position: relative; 
  display: block; 
  color: #fbe5b2; 
  font-size: 22px; 
  font-weight: 400 
} 
 
.bl_bonus__name span { 
  position: relative; 
  top: -4px; 
  padding: 0 16px; 
  background: #222 -webkit-gradient(linear, left top, right top, from(#222), to(#222), color-stop(.5, #fff)) 0 0 no-repeat; 
  -webkit-background-size: 150px; 
  color: rgba(255, 255, 255, .4); 
  -webkit-background-clip: text; 
  -webkit-animation: shine 3s infinite; 
  animation: shine 3s infinite; 
  text-shadow: 0 0 0 rgba(255, 255, 255, .5); 
  z-index: 2 
} 
 
.bl_bonus__name:after, 
.bl_bonus__name:before { 
  content: ""; 
  position: absolute; 
  top: 10px; 
  width: 134px; 
  height: 2px; 
  background-color: #fbe5b2; 
  z-index: 1 
} 
 
.bl_bonus__name:before { 
  left: 20px 
} 
 
.bl_bonus__value { 
  margin-top: 22px; 
  color: #fff; 
  font-size: 52px; 
  font-weight: 600; 
  letter-spacing: .13px; 
  line-height: 34px; 
  white-space: nowrap 
} 
 
.bl_bonus__motto, 
.btn_bonus__getBonus { 
  color: #fff; 
  font-size: 20px; 
  font-weight: 400 
} 
 
.bl_bonus__motto { 
  margin-top: 15px; 
  text-align: center 
} 
 
.btn_bonus__getBonus { 
  display: block; 
  width: 246px; 
  height: 54px; 
  line-height: 54px; 
  text-transform: uppercase; 
  border-radius: 10px; 
  margin: 10px auto; 
  box-sizing: border-box; 
  background-image: linear-gradient(to right, #fae53d 0%, #e88000 51%, #f6bd3a 100%); 
  border: 1px solid #fff 
} 
 
.btn_bonus__getBonus:focus, 
.btn_bonus__getBonus:hover { 
  color: #1d3559; 
  transition: .15s all ease-in 
} 
 
.bl_bonus__downSide { 
  position: absolute; 
  top: 0; 
  left: 0; 
  max-height: 442px; 
  width: 100%; 
  background: #09161f; 
  border: 2px solid #fff; 
  overflow-y: auto; 
  color: #a2a6af; 
  font-size: 14px; 
  transition: .5s all ease-in; 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__downSide { 
  z-index: 4 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__downSide { 
  z-index: 2 
} 
 
.bl_bonus.bl_bonus__active .bl_bonus__downSide { 
  top: 100%; 
  transition: .5s all ease-in; 
  z-index: 8 
} 
 
.bl_bonus.bl_bonus__active+.bl_bonus>.btn_bonus__info { 
  display: none 
} 
 
.bl_bonus__value.bl_bonus__downValue { 
  font-size: 52px; 
  line-height: 34px; 
  margin-top: 0; 
  margin-bottom: 15px 
} 
 
.bl_bonus__downSide p { 
  font-size: 14px; 
  line-height: 18px 
} 
 
.bl_bonus__downSide a { 
  color: #fdf1c7; 
  line-height: 20px; 
  text-decoration: underline 
} 
 
.bl_bonus__downSide h2, 
.bl_bonus__downSide h3 { 
  color: #fbe5b2; 
  font-size: 21px; 
  line-height: 23px; 
  text-transform: uppercase; 
  font-weight: 400 
} 
 
.bl_bonus__downSide ol li, 
.bl_bonus__downSide ul li { 
  padding-left: 10px; 
  margin-bottom: 10px; 
  color: #a2a6af 
} 
 
.bl_bonus__downSide ul li { 
  position: relative 
} 
 
.bl_bonus__downSide ul li:before { 
  content: '•'; 
  color: #dfc00f; 
  margin-right: 10px 
} 
 
::-webkit-scrollbar { 
  width: 5px; 
} 
 
::-webkit-scrollbar-thumb { 
  border-width: 1px 1px 1px 2px; 
  border-color: #777; 
  background-color: #fbe2ae; 
} 
 
::-webkit-scrollbar-thumb:hover { 
  background-color: #173a56; 
} 
 
::-webkit-scrollbar-track-piece { 
  background-color: #173a56; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="bl_bonus"> 
  <button class="btn_bonus__info" type="button"></button> 
  <div class="bl_bonus__upSide"> 
    <img class="bl_bonus__img" src="https://via.placeholder.com/350x130" alt="bonus-ot-netgame-za-depozit"> 
    <div class="bl_bonus__wrapper"> 
      <p class="bl_bonus__name">Title for bonus</p> 
      <p class="bl_bonus__value">Value bonus</p> 
      <p class="bl_bonus__motto">short description about bonus</p> 
      <button class="btn_bonus__getBonus" type="button" data-href="#">Get bonus</button> 
    </div> 
  </div> 
  <div class="bl_bonus__downSide"> 
    <p class="bl_bonus__value bl_bonus__downValue">Title2</p> 
 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet commodi, numquam facilis, odit officia tempore. 
    <h3>title3</h3> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores facere rem optio obcaecati, delectus id exercitationem qui, commodi veniam nesciunt. 
    <h3>title3</h3> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore ratione est vero, reprehenderit alias dicta deserunt molestias esse possimus, accusantium quo, culpa. 
    <h3>title3</h3> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis necessitatibus vitae voluptatum quae ab voluptatibus culpa, asperiores distinctio aperiam autem illo, maxime dicta, sapiente cupiditate dignissimos error quis corporis architecto. 
    <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate blanditiis in sunt dignissimos, odio ex adipisci obcaecati praesentium atque repellat asperiores quisquam quibusdam placeat natus, eligendi et eaque perferendis eos.</div> 
    <div>Non mollitia libero beatae maxime animi hic, quos, voluptatem aspernatur ullam perferendis iusto nostrum aut explicabo. Quae nemo, consectetur expedita quas temporibus assumenda minus sapiente odio. Recusandae omnis labore, blanditiis?</div> 
    <div>Eos molestias optio dolores quas, reprehenderit exercitationem iure ullam rerum iste laudantium impedit asperiores accusamus laborum nisi porro nam placeat, voluptas, adipisci consequatur cumque. Libero nihil molestias, dolore delectus aut!</div> 
    <div>Magni ea quas aliquid repellat corrupti harum mollitia repudiandae quo voluptatibus dicta ipsum ducimus, laboriosam, maxime, maiores nisi temporibus quasi, modi. Error, consequatur, quo! Repellendus repellat voluptates quae cumque error!</div> 
    <div>Ipsum fugit dicta eius ullam mollitia quasi et adipisci tempora beatae debitis, doloribus quod laudantium ea laboriosam dolor impedit eos quia quo quis consequatur totam, sapiente nemo doloremque! Ad, totam.</div> 
    <h3>title3</h3> 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo ad, quibusdam eaque rem iste officia ducimus ex, eius pariatur iusto et nulla porro debitis minus iure culpa totam ipsa voluptate odio, modi suscipit! Est ab quidem rem vel perferendis neque 
    harum odit iure adipisci, non quos, id, illo voluptate officiis! 
 
    <button class="btn_close__bonus" type="button"></button> 
  </div>

Высота данного блока может быть абсолютно разная (в зависимости от наполняемого контента), если блок больше max-height: 442px; overflow-y: auto; ? (Я пробовал ещё через float:right; для кнопки, но это выходит не в плотную, а для меня важно, что б в притык) P.S. если контента в блоке .bl_bonus__downSide меньше 442px то данный вариант отрабатывает правильно

Answer 1

Предложу еще 1 вариант, оборачиваем контент bl_bonus__downSide в доп. блок(bl_bonus__downSide-inner) и задаем ему position: relative.

var btnBonusInfo = $(".btn_bonus__info"), 
  btnCloseBonus = $(".btn_close__bonus"); 
 
btnBonusInfo.on("click", function() { 
  $(this).parent(".bl_bonus").toggleClass("bl_bonus__active"); 
}); 
btnCloseBonus.on("click", function() { 
  $(this).closest(".bl_bonus").removeClass("bl_bonus__active"); 
});
.bl_bonus { 
  position: relative; 
  width: 100%; 
  max-width: 538px; 
  height: 444px; 
  border-radius: 6px; 
  margin-bottom: 40px; 
  background-color: #3c3f41; 
  border: 1px solid #d1c8ab; 
  box-sizing: border-box; 
} 
 
.bl_bonus__img { 
  width: 100%; 
} 
 
.btn_bonus__info { 
  left: 0; 
  top: 0; 
  width: 50px; 
  height: 50px; 
  border-radius: 0 0 50% 0 
} 
 
.btn_bonus__info, 
.btn_close__bonus { 
  position: absolute; 
  box-sizing: border-box; 
  border: 2px solid #555; 
  background-color: #3c3f41; 
  outline: 0; 
  z-index: 10; 
  cursor: pointer; 
} 
 
.btn_close__bonus { 
  top: initial; 
  left: initial; 
  display: block; 
  bottom: 0; 
  right: 0; 
  width: 30px; 
  height: 30px; 
  border-radius: 0; 
  z-index: 3; 
} 
 
.btn_close__bonus:after { 
  content: "X"; 
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
  color: #f00; 
  font-size: 30px; 
} 
 
.bl_bonus__upSide { 
  position: relative; 
  height: 100%; 
  min-height: 500px; 
  background: #09161f; 
  z-index: 4; 
} 
 
.bl_bonus__upSide:after { 
  content: ""; 
  display: table; 
  clear: both; 
  width: 100% 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__upSide { 
  z-index: 5 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__upSide { 
  z-index: 3 
} 
 
.bl_bonus__img { 
  display: block; 
  width: 100%; 
  min-height: 40px 
} 
 
.bl_bonus__wrapper { 
  width: 100%; 
  margin-top: 30px; 
  padding: 0 5px; 
  vertical-align: top 
} 
 
.bl_bonus__name, 
.bl_bonus__value { 
  text-align: center; 
  text-transform: uppercase 
} 
 
.bl_bonus__name { 
  position: relative; 
  display: block; 
  color: #fbe5b2; 
  font-size: 22px; 
  font-weight: 400 
} 
 
.bl_bonus__name span { 
  position: relative; 
  top: -4px; 
  padding: 0 16px; 
  background: #222 -webkit-gradient(linear, left top, right top, from(#222), to(#222), color-stop(.5, #fff)) 0 0 no-repeat; 
  -webkit-background-size: 150px; 
  color: rgba(255, 255, 255, .4); 
  -webkit-background-clip: text; 
  -webkit-animation: shine 3s infinite; 
  animation: shine 3s infinite; 
  text-shadow: 0 0 0 rgba(255, 255, 255, .5); 
  z-index: 2 
} 
 
.bl_bonus__name:after, 
.bl_bonus__name:before { 
  content: ""; 
  position: absolute; 
  top: 10px; 
  width: 134px; 
  height: 2px; 
  background-color: #fbe5b2; 
  z-index: 1 
} 
 
.bl_bonus__name:before { 
  left: 20px 
} 
 
.bl_bonus__value { 
  margin-top: 22px; 
  color: #fff; 
  font-size: 52px; 
  font-weight: 600; 
  letter-spacing: .13px; 
  line-height: 34px; 
  white-space: nowrap 
} 
 
.bl_bonus__motto, 
.btn_bonus__getBonus { 
  color: #fff; 
  font-size: 20px; 
  font-weight: 400 
} 
 
.bl_bonus__motto { 
  margin-top: 15px; 
  text-align: center 
} 
 
.btn_bonus__getBonus { 
  display: block; 
  width: 246px; 
  height: 54px; 
  line-height: 54px; 
  text-transform: uppercase; 
  border-radius: 10px; 
  margin: 10px auto; 
  box-sizing: border-box; 
  background-image: linear-gradient(to right, #fae53d 0%, #e88000 51%, #f6bd3a 100%); 
  border: 1px solid #fff 
} 
 
.btn_bonus__getBonus:focus, 
.btn_bonus__getBonus:hover { 
  color: #1d3559; 
  transition: .15s all ease-in 
} 
 
.bl_bonus__downSide { 
  position: absolute; 
  top: 0; 
  left: 0; 
  max-height: 442px; 
  width: 100%; 
  background: #09161f; 
  border: 2px solid #fff; 
  overflow-y: auto; 
  color: #a2a6af; 
  font-size: 14px; 
  transition: .5s all ease-in; 
} 
 
.bl_bonus__downSide-inner { 
  position: relative; 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__downSide { 
  z-index: 4 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__downSide { 
  z-index: 2 
} 
 
.bl_bonus.bl_bonus__active .bl_bonus__downSide { 
  top: 100%; 
  transition: .5s all ease-in; 
  z-index: 8 
} 
 
.bl_bonus.bl_bonus__active+.bl_bonus>.btn_bonus__info { 
  display: none 
} 
 
.bl_bonus__value.bl_bonus__downValue { 
  font-size: 52px; 
  line-height: 34px; 
  margin-top: 0; 
  margin-bottom: 15px 
} 
 
.bl_bonus__downSide p { 
  font-size: 14px; 
  line-height: 18px 
} 
 
.bl_bonus__downSide a { 
  color: #fdf1c7; 
  line-height: 20px; 
  text-decoration: underline 
} 
 
.bl_bonus__downSide h2, 
.bl_bonus__downSide h3 { 
  color: #fbe5b2; 
  font-size: 21px; 
  line-height: 23px; 
  text-transform: uppercase; 
  font-weight: 400 
} 
 
.bl_bonus__downSide ol li, 
.bl_bonus__downSide ul li { 
  padding-left: 10px; 
  margin-bottom: 10px; 
  color: #a2a6af 
} 
 
.bl_bonus__downSide ul li { 
  position: relative 
} 
 
.bl_bonus__downSide ul li:before { 
  content: '•'; 
  color: #dfc00f; 
  margin-right: 10px 
} 
 
::-webkit-scrollbar { 
  width: 5px; 
} 
 
::-webkit-scrollbar-thumb { 
  border-width: 1px 1px 1px 2px; 
  border-color: #777; 
  background-color: #fbe2ae; 
} 
 
::-webkit-scrollbar-thumb:hover { 
  background-color: #173a56; 
} 
 
::-webkit-scrollbar-track-piece { 
  background-color: #173a56; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="bl_bonus"> 
  <button class="btn_bonus__info" type="button"></button> 
  <div class="bl_bonus__upSide"> 
    <img class="bl_bonus__img" src="https://via.placeholder.com/350x130" alt="bonus-ot-netgame-za-depozit"> 
    <div class="bl_bonus__wrapper"> 
      <p class="bl_bonus__name">Title for bonus</p> 
      <p class="bl_bonus__value">Value bonus</p> 
      <p class="bl_bonus__motto">short description about bonus</p> 
      <button class="btn_bonus__getBonus" type="button" data-href="#">Get bonus</button> 
    </div> 
  </div> 
  <div class="bl_bonus__downSide"> 
    <div class="bl_bonus__downSide-inner"> 
      <p class="bl_bonus__value bl_bonus__downValue">Title2</p> 
 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet commodi, numquam facilis, odit officia tempore. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores facere rem optio obcaecati, delectus id exercitationem qui, commodi veniam nesciunt. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore ratione est vero, reprehenderit alias dicta deserunt molestias esse possimus, accusantium quo, culpa. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis necessitatibus vitae voluptatum quae ab voluptatibus culpa, asperiores distinctio aperiam autem illo, maxime dicta, sapiente cupiditate dignissimos error quis corporis architecto. 
      <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate blanditiis in sunt dignissimos, odio ex adipisci obcaecati praesentium atque repellat asperiores quisquam quibusdam placeat natus, eligendi et eaque perferendis eos.</div> 
      <div>Non mollitia libero beatae maxime animi hic, quos, voluptatem aspernatur ullam perferendis iusto nostrum aut explicabo. Quae nemo, consectetur expedita quas temporibus assumenda minus sapiente odio. Recusandae omnis labore, blanditiis?</div> 
      <div>Eos molestias optio dolores quas, reprehenderit exercitationem iure ullam rerum iste laudantium impedit asperiores accusamus laborum nisi porro nam placeat, voluptas, adipisci consequatur cumque. Libero nihil molestias, dolore delectus aut!</div> 
      <div>Magni ea quas aliquid repellat corrupti harum mollitia repudiandae quo voluptatibus dicta ipsum ducimus, laboriosam, maxime, maiores nisi temporibus quasi, modi. Error, consequatur, quo! Repellendus repellat voluptates quae cumque error!</div> 
      <div>Ipsum fugit dicta eius ullam mollitia quasi et adipisci tempora beatae debitis, doloribus quod laudantium ea laboriosam dolor impedit eos quia quo quis consequatur totam, sapiente nemo doloremque! Ad, totam.</div> 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo ad, quibusdam eaque rem iste officia ducimus ex, eius pariatur iusto et nulla porro debitis minus iure culpa totam ipsa voluptate odio, modi suscipit! Est ab quidem rem vel perferendis neque 
      harum odit iure adipisci, non quos, id, illo voluptate officiis! 
 
      <button class="btn_close__bonus" type="button"></button></div> 
  </div>

Answer 2

В мою сонную башку пришла вот такая идея для вас.

Вам нужно: Взять кнопку в отдельный блок и задать ему следующие свойства:

.btn_close__bonus_wrap {
  text-align: right; /* для отображения кнопки справа */
  margin-top: -30px; /* отрицательный отступ вверх по высоте самой кнопки */
}

Далее самой кнопке задаём следующее:

.btn_close__bonus {
  display: inline-block; /* Делаем её строчным элементом */
  position: relative;    /* Отключаем ей абсолютное позиционирование */
  left: auto;            /* Аналогично.... */
  right: auto;           /* Аналогично... */
  top: auto;             /* Аналогично.. */
  bottom: auto;          /* Аналогично. */
}

Получаем вот такой результат:

var btnBonusInfo = $(".btn_bonus__info"), 
  btnCloseBonus = $(".btn_close__bonus"); 
 
btnBonusInfo.on("click", function() { 
  $(this).parent(".bl_bonus").toggleClass("bl_bonus__active"); 
}); 
btnCloseBonus.on("click", function() { 
  $(this).closest(".bl_bonus").removeClass("bl_bonus__active"); 
});
.bl_bonus { 
  position: relative; 
  width: 100%; 
  max-width: 538px; 
  height: 444px; 
  border-radius: 6px; 
  margin-bottom: 40px; 
  background-color: #3c3f41; 
  border: 1px solid #d1c8ab; 
  box-sizing: border-box; 
} 
 
.bl_bonus__img { 
  width: 100%; 
} 
 
.btn_bonus__info { 
  left: 0; 
  top: 0; 
  width: 50px; 
  height: 50px; 
  border-radius: 0 0 50% 0 
} 
 
.btn_bonus__info, 
.btn_close__bonus { 
  position: absolute; 
  box-sizing: border-box; 
  border: 2px solid #555; 
  background-color: #3c3f41; 
  outline: 0; 
  z-index: 10; 
  cursor: pointer; 
} 
 
.btn_close__bonus { 
  top: initial; 
  left: initial; 
  display: block; 
  bottom: 0; 
  right: 0; 
  width: 30px; 
  height: 30px; 
  border-radius: 0; 
  z-index: 3; 
} 
 
.btn_close__bonus:after { 
  content: "X"; 
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
  color: #f00; 
  font-size: 30px; 
} 
 
.bl_bonus__upSide { 
  position: relative; 
  height: 100%; 
  min-height: 500px; 
  background: #09161f; 
  z-index: 4; 
} 
 
.bl_bonus__upSide:after { 
  content: ""; 
  display: table; 
  clear: both; 
  width: 100% 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__upSide { 
  z-index: 5 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__upSide { 
  z-index: 3 
} 
 
.bl_bonus__img { 
  display: block; 
  width: 100%; 
  min-height: 40px 
} 
 
.bl_bonus__wrapper { 
  width: 100%; 
  margin-top: 30px; 
  padding: 0 5px; 
  vertical-align: top 
} 
 
.bl_bonus__name, 
.bl_bonus__value { 
  text-align: center; 
  text-transform: uppercase 
} 
 
.bl_bonus__name { 
  position: relative; 
  display: block; 
  color: #fbe5b2; 
  font-size: 22px; 
  font-weight: 400 
} 
 
.bl_bonus__name span { 
  position: relative; 
  top: -4px; 
  padding: 0 16px; 
  background: #222 -webkit-gradient(linear, left top, right top, from(#222), to(#222), color-stop(.5, #fff)) 0 0 no-repeat; 
  -webkit-background-size: 150px; 
  color: rgba(255, 255, 255, .4); 
  -webkit-background-clip: text; 
  -webkit-animation: shine 3s infinite; 
  animation: shine 3s infinite; 
  text-shadow: 0 0 0 rgba(255, 255, 255, .5); 
  z-index: 2 
} 
 
.bl_bonus__name:after, 
.bl_bonus__name:before { 
  content: ""; 
  position: absolute; 
  top: 10px; 
  width: 134px; 
  height: 2px; 
  background-color: #fbe5b2; 
  z-index: 1 
} 
 
.bl_bonus__name:before { 
  left: 20px 
} 
 
.bl_bonus__value { 
  margin-top: 22px; 
  color: #fff; 
  font-size: 52px; 
  font-weight: 600; 
  letter-spacing: .13px; 
  line-height: 34px; 
  white-space: nowrap 
} 
 
.bl_bonus__motto, 
.btn_bonus__getBonus { 
  color: #fff; 
  font-size: 20px; 
  font-weight: 400 
} 
 
.bl_bonus__motto { 
  margin-top: 15px; 
  text-align: center 
} 
 
.btn_bonus__getBonus { 
  display: block; 
  width: 246px; 
  height: 54px; 
  line-height: 54px; 
  text-transform: uppercase; 
  border-radius: 10px; 
  margin: 10px auto; 
  box-sizing: border-box; 
  background-image: linear-gradient(to right, #fae53d 0%, #e88000 51%, #f6bd3a 100%); 
  border: 1px solid #fff 
} 
 
.btn_bonus__getBonus:focus, 
.btn_bonus__getBonus:hover { 
  color: #1d3559; 
  transition: .15s all ease-in 
} 
 
.bl_bonus__downSide { 
  position: absolute; 
  top: 0; 
  left: 0; 
  max-height: 442px; 
  width: 100%; 
  background: #09161f; 
  border: 2px solid #fff; 
  overflow-y: auto; 
  color: #a2a6af; 
  font-size: 14px; 
  transition: .5s all ease-in; 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(1) .bl_bonus__downSide { 
  z-index: 4 
} 
 
.bl_bonuses__page .bl_bonus:nth-child(2) .bl_bonus__downSide { 
  z-index: 2 
} 
 
.bl_bonus.bl_bonus__active .bl_bonus__downSide { 
  top: 100%; 
  transition: .5s all ease-in; 
  z-index: 8 
} 
 
.bl_bonus.bl_bonus__active+.bl_bonus>.btn_bonus__info { 
  display: none 
} 
 
.bl_bonus__value.bl_bonus__downValue { 
  font-size: 52px; 
  line-height: 34px; 
  margin-top: 0; 
  margin-bottom: 15px 
} 
 
.bl_bonus__downSide p { 
  font-size: 14px; 
  line-height: 18px 
} 
 
.bl_bonus__downSide a { 
  color: #fdf1c7; 
  line-height: 20px; 
  text-decoration: underline 
} 
 
.bl_bonus__downSide h2, 
.bl_bonus__downSide h3 { 
  color: #fbe5b2; 
  font-size: 21px; 
  line-height: 23px; 
  text-transform: uppercase; 
  font-weight: 400 
} 
 
.bl_bonus__downSide ol li, 
.bl_bonus__downSide ul li { 
  padding-left: 10px; 
  margin-bottom: 10px; 
  color: #a2a6af 
} 
 
.bl_bonus__downSide ul li { 
  position: relative; 
} 
 
.bl_bonus__downSide ul li:before { 
  content: '•'; 
  color: #dfc00f; 
  margin-right: 10px 
} 
 
::-webkit-scrollbar { 
  width: 5px; 
} 
 
::-webkit-scrollbar-thumb { 
  border-width: 1px 1px 1px 2px; 
  border-color: #777; 
  background-color: #fbe2ae; 
} 
 
::-webkit-scrollbar-thumb:hover { 
  background-color: #173a56; 
} 
 
::-webkit-scrollbar-track-piece { 
  background-color: #173a56; 
} 
 
.btn_close__bonus_wrap { 
  text-align: right; 
  height: 30px; 
  margin-top: -30px; 
} 
 
.btn_close__bonus { 
  display: inline-block; 
  position: relative; 
  left: auto; 
  right: auto; 
  top: auto; 
  bottom: auto; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<div class="bl_bonus"> 
  <button class="btn_bonus__info" type="button"></button> 
  <div class="bl_bonus__upSide"> 
    <img class="bl_bonus__img" src="https://via.placeholder.com/350x130" alt="bonus-ot-netgame-za-depozit"> 
    <div class="bl_bonus__wrapper"> 
      <p class="bl_bonus__name">Title for bonus</p> 
      <p class="bl_bonus__value">Value bonus</p> 
      <p class="bl_bonus__motto">short description about bonus</p> 
      <button class="btn_bonus__getBonus" type="button" data-href="#">Get bonus</button> 
    </div> 
  </div> 
  <div class="bl_bonus__downSide"> 
    <div class="bl_bonus_wrap"> 
      <p class="bl_bonus__value bl_bonus__downValue">Title2</p> 
 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet commodi, numquam facilis, odit officia tempore. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores facere rem optio obcaecati, delectus id exercitationem qui, commodi veniam nesciunt. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore ratione est vero, reprehenderit alias dicta deserunt molestias esse possimus, accusantium quo, culpa. 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis necessitatibus vitae voluptatum quae ab voluptatibus culpa, asperiores distinctio aperiam autem illo, maxime dicta, sapiente cupiditate dignissimos error quis corporis architecto. 
      <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate blanditiis in sunt dignissimos, odio ex adipisci obcaecati praesentium atque repellat asperiores quisquam quibusdam placeat natus, eligendi et eaque perferendis eos.</div> 
      <div>Non mollitia libero beatae maxime animi hic, quos, voluptatem aspernatur ullam perferendis iusto nostrum aut explicabo. Quae nemo, consectetur expedita quas temporibus assumenda minus sapiente odio. Recusandae omnis labore, blanditiis?</div> 
      <div>Eos molestias optio dolores quas, reprehenderit exercitationem iure ullam rerum iste laudantium impedit asperiores accusamus laborum nisi porro nam placeat, voluptas, adipisci consequatur cumque. Libero nihil molestias, dolore delectus aut!</div> 
      <div>Magni ea quas aliquid repellat corrupti harum mollitia repudiandae quo voluptatibus dicta ipsum ducimus, laboriosam, maxime, maiores nisi temporibus quasi, modi. Error, consequatur, quo! Repellendus repellat voluptates quae cumque error!</div> 
      <div>Ipsum fugit dicta eius ullam mollitia quasi et adipisci tempora beatae debitis, doloribus quod laudantium ea laboriosam dolor impedit eos quia quo quis consequatur totam, sapiente nemo doloremque! Ad, totam.</div> 
      <h3>title3</h3> 
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo ad, quibusdam eaque rem iste officia ducimus ex, eius pariatur iusto et nulla porro debitis minus iure culpa totam ipsa voluptate odio, modi suscipit! Est ab quidem rem vel perferendis neque 
      harum odit iure adipisci, non quos, id, illo voluptate officiis! 
    </div> 
    <div class="btn_close__bonus_wrap"> 
    <button class="btn_close__bonus" type="button"></button> 
    </div> 
  </div>

Надеюсь это то, что описано в вопросе..
Либо реально мне нужно идти спать, либо вам переформулировать вопрос более понятно.

READ ALSO
Время появление элемента CSS (свойство transition)

Время появление элемента CSS (свойство transition)

К определенному элементу установлено свойство transition для плавного появления при наведенииНо он также плавно исчезает, если увести мышку...

129
документация кода из комментариев vue + typescript?

документация кода из комментариев vue + typescript?

Нигде не могу найти решение для автоматической документации из комментариевЕсть вариант typeDoc, но он не умеет читать vue файлы

100
Как получить данные из скрытых полей таблицы?

Как получить данные из скрытых полей таблицы?

Есть демо плагина таблицы wpdatatables

125
howler.js динамическая подгрузка аудиофайла

howler.js динамическая подгрузка аудиофайла

Могу ли я, используя библиотеку howlerjs, реализовать аудиоплеер, который будет воспроизводить аудиофайл не дожидаясь полного скачивания файла,...

98