Отображать элементы поверх изображения - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть следующий код на странице codepen .(включено для выполнения кода - не работает во фрагменте) Цель состоит в том, чтобы отобразить элемент <div class="item__boxes"> в нижней части <div class="item">.

Вопрос

Как бы я отобразил элемент <div class="item__boxes"> в нижней части <div class="item">?

Цель:

  1. Поскольку высота <div class="item__text"> увеличивается из-за содержимого внутри него, между текстом и <div class="item__boxes">.
  2. * всегда должен быть какой-то отступ / отступ.1024 * всегда должно отображаться в нижней части элемента <div class="item"> независимо от точки останова.

Текущая проблема

current issue with banner

Требуемый выход

desired output with banner

Код

.item {
  position: relative;
}
.item__wrapper {
  max-width: 50%;
  position: relative;
}
.item__img img {
  width: 100% !important;
}
.item__text {
  position: absolute;
  background: rgba(238, 238, 238, 0.5);
  padding: 64px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.item__boxes {
  background-color: #ccc;
  display: flex;
  position: absolute;
  bottom: 0;
}

.col-padding {
  padding: 16px;
}
.col-m-12 {
  width: 100%;
}

@media (min-width: 1024px) {
  .col-t-6 {
    width: 50%;
  }
}
<div class="item__wrapper">
<div class="item">
	<div class="item__img">
		<picture>
				<source media="(min-width: 1300px)" srcset="https://placeimg.com/1000/480/nature">
				<source media="(min-width: 1024px)" srcset="https://placeimg.com/960/480/nature">
				<img src="https://placeimg.com/640/480/nature" alt="Flowers" style="width:auto;">
		</picture>
	</div>
	<div class="item__text">
		<h3>Some title</h3>
		<p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
	</div>
</div>
<div class="item__boxes">
		<div class="col-m-12 col-t-6 col-padding">
			<div>Some Title</div>
			<div>Enthusiastically incubate diverse initiatives without multifunctional strategic theme areas.</div>
		</div>
		<div class="col-m-12 col-t-6 col-padding">
			<div>Globally Title</div>
			<div>Globally impact integrated infomediaries via seamless mindshare. </div>
		</div>
		<div class="col-m-12 col-t-6 col-padding">
			<div>Distinctively Title</div>
			<div>Distinctively strategize long-term high-impact ideas whereas client-centered leadership skills.</div>
		</div>
</div>
</div>

1 Ответ

0 голосов
/ 05 декабря 2018

Я играл с твоим кодом.Чтобы всегда был какой-то отступ, независимо от его ширины, вам придется использовать относительное расположение текста и абсолютно позиционировать изображение.Поскольку нижний отступ будет меняться в зависимости от его ширины, я рекомендую вам включить изображение как background-image и установить размер фонового изображения на cover в css ,таким образом, не будет никакого разрыва, независимо от того, насколько широкий / узкий / высокий / короткий экран у вас.Я опробовал данный код на ширине 80% и установил заполнение на 33% (я не вставлял код фонового изображения). При исходной ширине 50% нижний отступ не требовался.

Код фрагмента не будет запускаться из-за структуры css, но я все равно включу его для дальнейшего использования.Вот ссылка codepen и second

Надеюсь, это поможет

.item {
  position: relative;
  &__wrapper {
    max-width: 50%;
    position: relative;
    min-height: 100vh;
  }
  &__img {
    img {
      top: 0px;
      position: absolute;
      width: 100%!important;
    }
  }
  &__text {
    top: 0px;
    position: relative;
    min-height: 100vh;
    background: rgba(238, 238, 238, 0.5);
    padding-right: 50px;
    padding-left: 50px;
    padding-top: 30px;
    //padding-bottom:33vh at 80%;
    z-index: 0;
    display: flex;
    flex-direction: column;
    align-items: top;
    justify-content: center;
  }
  &__boxes {
    background-color: #ccc;
    display: flex;
    position: relative;
    bottom: 0px;
  }
}

.col {
  &-padding {
    padding: 16px 16px 5px 16px;
  }
  &-m-12 {
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .col {
    &-t-6 {
      width: 50%;
    }
  }
}
<div class="item__wrapper">
  <div class="item">
    <div class="item__img">
      <picture>
        <source media="(min-width: 1300px)" srcset="https://placeimg.com/1000/480/nature">
        <source media="(min-width: 1024px)" srcset="https://placeimg.com/960/480/nature">
        <img src="https://placeimg.com/640/480/nature" alt="Flowers" style="width:auto;">
      </picture>
    </div>
    <div class="item__text">
      <h3>Some title</h3>
      <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally
        procrastinate. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
    </div>
  </div>
  <div class="item__boxes">
    <div class="col-m-12 col-t-6 col-padding">
      <div>Some Title</div>
      <div>Enthusiastically incubate diverse initiatives without multifunctional strategic theme areas.</div>
    </div>
    <div class="col-m-12 col-t-6 col-padding">
      <div>Globally Title</div>
      <div>Globally impact integrated infomediaries via seamless mindshare. </div>
    </div>
    <div class="col-m-12 col-t-6 col-padding">
      <div>Distinctively Title</div>
      <div>Distinctively strategize long-term high-impact ideas whereas client-centered leadership skills.</div>
    </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...