Я пытался следовать этому коду при расчете чаевых, но не знаю, как создать этот совет вверху слева/справа, как в стиле WhatsApp. Я не видел ничего похожего на этот конкретный метод или объяснение того, как создаются эти фигуры.
Я пробовал что-то подобное, но потом теряю радиус границы
.arrow {
--a: 15px; /* control the arrow shape */
width: 200px;
height: 100px;
position: relative;
overflow: hidden;
background: red;
border-radius: 10px;
padding-left: var(--a); /* or padding-right */
clip-path:polygon(0 0,100% 0,100% 100%,var(--a) 100%,var(--a) var(--a))
/* x,y --> update all the x to (100% - x) to get the right */
} <div class = "arrow">
contents
</div>https://jsfiddle.net/4azhk38o/
.bubble {
--r: 25px; /* the radius */
--t: 30px; /* the size of the tail */
max-width: 300px;
padding: calc(2*var(--r)/3);
-webkit-mask:
radial-gradient(var(--t) at var(--_d) 0,#0000 98%,#000 102%)
var(--_d) 100%/calc(100% - var(--r)) var(--t) no-repeat,
conic-gradient(at var(--r) var(--r),#000 75%,#0000 0)
calc(var(--r)/-2) calc(var(--r)/-2) padding-box,
radial-gradient(50% 50%,#000 98%,#0000 101%)
0 0/var(--r) var(--r) space padding-box;
background: #1384C5;
color: #fff;
}
.left {
--_d: 0%;
border-left: var(--t) solid #0000;
margin-right: var(--t);
place-self: start;
}
.right {
--_d: 100%;
border-right: var(--t) solid #0000;
margin-left: var(--t);
place-self: end;
}
body {
margin: 0;
min-height: 100vh;
display: grid;
place-content: center;
gap: 20px;
font-family: system-ui, sans-serif;
font-size: 20px;
}<div class = "bubble left">Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt </div>
<div class = "bubble right">Ok, Thank you</div>
<div class = "bubble left"> ut labore et dolore magna </div>
<div class = "bubble right">Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt </div>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


введите сюда описание изображения
пожалуйста, замените этот CSS своим CSS
-webkit-mask: radial-gradient(var(--t) at var(--_d) 100%, #0000 98%, #000 102%) var(--_d) 0%/calc(100% - var(--r)) var(--t) no-repeat, conic-gradient(at var(--r) var(--r),#000 75%,#0000 0) calc(var(--r)/-2) calc(var(--r)/-2) padding-box, radial-gradient(50% 50%,#000 98%,#0000 101%) 0 0/var(--r) var(--r) space padding-box;
проверьте экран, почему вы ставите нижнюю точку в моем ответе?
Пожалуйста, посмотрите Как ответить. Кроме того, вы не должны делиться кодом в изображении.
сначала проверь скриншот моего ответа
объясните пожалуйста, где я ошибся в ответе
у него небольшой выступ и показан только вариант с выравниванием по левому краю. Не могли бы вы показать свой ответ для решения обеих ситуаций и объяснить, где в математике это обрабатывается?
Я использовал :after, чтобы создать рамку вокруг пустого контента. В основном следовал примеру всплывающей подсказки.
.left-message {
position: relative;
background-color: rgb(250, 230, 175);
border-radius: 0px 10px 10px 10px;
padding: 1%;
text-align: left;
margin-right: 50%;
}
.left-message:after {
content: "";
position: absolute;
right: 100%;
top: 0px;
border-width: 5px;
border-style: solid;
border-color: rgb(250, 230, 175) rgb(250, 230, 175) transparent transparent;
}
.right-message {
position: relative;
background-color: rgb(234, 250, 175);
border-radius: 10px 0px 10px 10px;
padding: 1%;
text-align: right;
margin-left: 50%;
}
.right-message:after {
content: "";
position: absolute;
left: 100%;
top: 0px;
border-width: 5px;
border-style: solid;
border-color: rgb(234, 250, 175) transparent transparent rgb(234, 250, 175);
}<div class = "left-message">
Hello World
</div>
<div class = "right-message">
Hi there!
</div>Спасибо, это выглядит очень чисто. Меня просто сбивает с толку то, как один делает поликлип в другом подходе.
Я не понял, что вы имеете в виду под "поликлипом". Можете ли вы объяснить?
просто кажется, что существуют различные методы, подобные приведенному ниже, которые используют математику для создания формы многоугольника - stackoverflow.com/questions/50899997/…
@TheOldCounty, к сожалению, я тоже не могу этого понять, ссылка на ответ, которой вы поделились, на самом деле ничего не объясняет.
Объясните, пожалуйста, как это решает вопрос. Ответы, содержащие только код, не являются хорошими ответами