Прикрепление значков к углам контейнера flexbox с помощью flex-start и flex-end

У меня есть видеоконтейнер. Когда видео не воспроизводится, мне нужны три вещи:

  • Значок или инициалы удаленного пользователя (верхний левый угол)
  • Значок воспроизведения видео (в центре)
  • расширить/свернуть (нижний правый угол)

Я пытался сдвинуть значки по углам с помощью align-self: flex-start и align-self: flex-end, но они не собираются по углам. В то же время я хочу, чтобы значок видео находился в центре поля.

Пока у меня это:

Прикрепление значков к углам контейнера flexbox с помощью flex-start и flex-endПрикрепление значков к углам контейнера flexbox с помощью flex-start и flex-end

Мой СКСС:

.video-container {
  width: 270px;
  height: 202px;
  border: 1px solid #cececc;
  background-color: $grey-light;
  padding: 15px;
  margin: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  .top-left {
    align-self: flex-start;
  }
  .bottom-right {
    align-self: flex-end;
  }
}

HTML:

  <div class='video-container' id='remote-media' data-target='video.remoteContainer'>
    <span class='top-left'>
      <%= concept(Avatar::Cell,@meeting.invitee_id,current_user: current_user ) %>
    </span>
    <i class = "fa fa-video fa-3x"></i>
    <span class='video-expand bottom-right'>
      <i class = "far fa-expand-arrows-alt fa-2x" data-target='video.expand' data-action='click->video#expand'></i>
      <i class = "far fa-compress-alt fa-2x display-none" data-target='video.contract' data-action='click->video#contract'></i>
    </span>
  </div>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
1 937
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

вы можете добиться этого с помощью позиционирования css

Пожалуйста, проверьте следующую скрипку

Ссылка на скрипку

   .topLeft, .bottomRight{
    position:absolute;
    }

Теперь используется обычный CSS, и вы можете преобразовать его в свой SCSS.

.video-container {
  width: 270px;
  height: 202px;
  border: 1px solid #cececc;
  background-color: $grey-light;
  padding: 15px;
  margin: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  .top-left {
    align-self: flex-start;
    position: absolute;
    top: 0px;
    left: 0px;
  }
  .bottom-right {
    align-self: flex-end;
    position: absolute;
    bottom: 0px;
    right: 0px;
  }
}

Использование 'align-self' не может быть исправлено с позицией. Итак, попробуйте добавить относительное и абсолютное положение, чтобы решить их. Обратитесь к приведенному выше коду.

Ответ принят как подходящий

что я сделал

  1. установите свойство flex-direction вашего #video-container на column
  2. добавил justify-content:space-between; объект в свой #video-container 3.используется align-selfсвойство для выравнивания дочерних элементов по разным местам

это работает нормально.

#video-container{
  width:200px;
  height:200px;
  border:1px solid #000;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

#video-container>span{
  border:1px solid #000;
  width:50px;
  height:50px;
  
}


.center{
  align-self:center;
}

.bottom-right{
  float:right;
  align-self:flex-end;
 }
<div id = "video-container">
  <span class = "top-left"></span>
  <span class = "center"></span>
  <span class = "bottom-right"></span>
</div>

Другие вопросы по теме