Задать вопрос
@DonorOfLove

Как выровнять иконку в нижний правый угол?

как сделать такую карточку? перепробовал, кажется, уже все варианты с position и align. Горизонтально выровнять смог с помощью float, но вот вертикально ни как не получается Подскажите, как сделать. Ну и в дополнение подскажите как лучше будет реализовать нижний блок с датой
609598897d2eb203806385.png
<div class="d-flex"> //обертка для блоков, которых тут нет
            <div class="honey-text">
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem corporis debitis eos ex in magnam
                    neque repudiandae saepe. Architecto cupiditate debitis ducimus ea eos laboriosam mollitia nesciunt
                    nostrum sequi, voluptatibus.</p>
                <i class="bi bi-plus"></i>
            </div>
</div>
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
RomanTRS
@RomanTRS
Исходя из фото, это стандартная карточка, со стандартными же элементами:
.card
  .card__date
  .card__image
  .card__info
    .card__icon

  1. Карточку делаете флекс-контейнером.
  2. Дату, через ордер, отправляете в конец рендеринга.
  3. Инфо, отправляете в начало.
  4. Двум крупным элементам, задаёте нужные размеры и флекс-гроу.
  5. Дата, благодаря флексу, сама подстроится.
  6. Иконка, абсолютно позиционируется, относительно элемента инфо.

Как-то так

<div class="card">
  <div class="card__date"><span class="card__day">25</span> april</div>
  <picture class="card__picture">
    <img class="card__image" src="https://unsplash.it/1000/300" alt="">
  </picture>
  <div class="card__info">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur sequi enim quia, voluptatibus laborum atque magnam sapiente sint expedita quas! Similique aspernatur quod optio quasi ducimus tempora commodi, maxime vel!</p>
    <button class="card__btn">+</button>
  </div>
</div>

*, *::before, *::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.card {
  display: flex;
  flex-wrap: wrap;
}
.card__date {
  order: 1;
  background-color: yellow;
  padding: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.card__day {
  font-size: 30px;
}
.card__info {
  order: -1;
  position: relative;
  padding: 20px;
}
.card__btn {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: none;
  border: 0;
  font-size: 30px;
}
.card__image {
  object-fit: cover;
  display: block;
}
.card__picture {
  overflow: hidden;
  display: flex;
  justify-content: center;
}
.card__picture,
.card__info {
  flex-grow: 1;
  flex-basis: 50%;
  flex-shrink: 0;
  background-color: orange;
}

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы