Как выровнять пузыри чата по левому и правому краям?

Я создал два пузыря чата, один из которых мне нужно выровнять по левому краю, а другой мне нужно выровнять по правому краю. На данный момент мои CSS растут до конца, как показано ниже.

Как выровнять пузыри чата по левому и правому краям?

На данный момент я не хочу жестко задавать ширину и хочу, чтобы пузырь рос вместе с текстом чата, и оба должны быть выровнены по левому краю, а другой - по правому краю, как показано ниже:

Как выровнять пузыри чата по левому и правому краям?

CSS:

.speech-wrapper{
  padding: 5px 6px;

  }
.chatbox {
  padding: 5px;
  margin-left: 5px;
  margin-right: 5px;
  margin-top:0px;   
  background: #075698;
  color: #FFF;
  position: relative;
  border-radius: 10px;  
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
  box-shadow: 0 8px 6px -6px black;




}
.chatbox_other{
  height:auto;
  padding: 5px;
  margin-left: 5px;
  margin-right: 5px;
  margin-top:0px;   
  background: #DCDCDC;
  color: #000;
  position: relative;
  border-radius: 10px;  
  overflow-wrap: break-word;
  word-wrap: break-word;
  hyphens: auto;
  box-shadow: 0 8px 6px -6px black;


}

      .name_other{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #1970b0;
      }
       .name_other1{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #ba006e;
      }
       .name_other2{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #007670;
      }
       .name_other3{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #3b0256;
      }
       .name_other4{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #00512b;
      }
       .name_other5{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #a91024;
      }
         .name_other6{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #b8471b;
      }
         .name_other7{
         font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #7f1c7d;
      }

.timestamp_other{
        font-size: 11px;
        position: absolute;
        bottom: 0px;
        right: 10px;
        text-transform: uppercase; color: #999
}       
.timestamp{
        font-size: 11px;
        position: absolute;
        bottom: 0px;
        right: 10px;
        text-transform: uppercase; color: #fff
      }
/* speech bubble 13 */
      .name{
        font-weight: 600;
        font-size: 12px;
        margin: 0px 0px  9px;
        color: #ffffff;
      }


.triangle.left-top:after {
  content: ' ';
  position: absolute;
  width: 0;
  height: 0;
  left: -10px;
  right: auto;
  top: 0px;
  bottom: auto;
  border: 22px solid;
  border-color: #DCDCDC transparent transparent transparent;
  z-index: -1;
}

.triangle.right-top:before {
    content: ' ';
    position: absolute;
    width: 0;
    height: 0;
    left: auto;
    right: -10px;
    top: 0;
    bottom: auto;
    border: 32px solid;
    border-color: #075698 transparent transparent 
      transparent;
      z-index: -1;
}   
   .alt{
      margin: 0 0 0 60px;
    }

HTML:

<div class = "speech-wrapper">
  <div class = "chatbox triangle right-top alt">
    <div class = "txt">
      <p class = "name">Apple TestUser1</p>Hi<span class = "timestamp">10:20 pm</span></div>
  </div>

  <div class = "speech-wrapper">
    <div class = "chatbox_other triangle left-top">
      <div class = "txt">
        <p class = "name">Apple TestUser1</p>Hi<span class = "timestamp">10:20 pm</span>
      </div>
    </div>
  </div>
</div>

Я пробовал uisng float left, но при уменьшении размера окон чат начал перекрываться друг с другом

Для тестирования попробуйте ссылку ниже https://codepen.io/rajesh-kumar-dash/pen/KbvqQX

Я не понимаю, в чем проблема ??

Ingus 02.01.2019 16:01

@ingus Проблема с макетом. Оба пузыря на данный момент растут до конца, так как ширина и высота автоматические. Я хочу, чтобы они занимали столько же места, сколько текст. Один должен быть выровнен по правому краю, а другой - по левому

Rajesh Kumar Dash 02.01.2019 16:03

Достичь желаемого эффекта с текущим кодом будет сложно, поскольку «пузыри» по умолчанию принимают максимальный размер за вычетом полей. В то же время они не могут адаптироваться к своему содержанию. Какая у вас другая версия с использованием float? Это выглядит более многообещающе, не должно быть так сложно исправить перекрытие.

Kaddath 02.01.2019 16:12
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
0
3
1 993
2

Ответы 2

«Грязный» способ сделать это - добавить после div, просто чтобы очистить float:

<div class = "speech-wrapper"><div class = "chatbox triangle right-top alt"><div class = "txt"><p class = "name">Apple TestUser1</p>Hi<span class = "timestamp">10:20 pm</span></div></div>
<div style = "clear:both"></div>
<div class = "speech-wrapper"><div class = "chatbox_other triangle left-top"><div class = "txt"><p class = "name">Apple TestUser1</p>Hi<span class = "timestamp">10:20 pm</span></div></div>
<div style = "clear:both"></div>

Более чистый способ сделать это называется «Clearfix». Я предлагаю вам взглянуть на эти две ссылки, чтобы понять это и использовать в своем коде:

https://www.w3schools.com/css/css_float.asp

https://css-tricks.com/snippets/css/clear-fix/

Я думаю, что использование float: right; для правого пузыря и для левого пузыря: float: left; с width: auto; должен работать

Вы также можете добавить max-width, чтобы пузырь не вырастал из чата

Arno van Liere 02.01.2019 16:22

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