Reputation: 51
I want to select the parts specified with jquery and apply "border radius".
But I couldn't achieve this with the Jquery selector.
Or how can I do that with CSS?
I don't want to solve this problem by adding "CLASS" to HTML Codes Manually. I want to detect those parts with a small code and take action automatically.
My Code: https://jsfiddle.net/gL3dwyu4/
body{
margin: 0;
padding: 15px 0px;
font-family: sans-serif;
font-size: 15px;
}
#chat-messages-list .message-row{
display: flex;
word-wrap: break-word;
margin-bottom: 2px;
padding-left: 20px;
padding-right: 20px;
position: relative;
}
#chat-messages-list .message-row:hover .message-time{
opacity: 1;
}
#chat-messages-list .message-row .chat-avatar{
display: block;
border-radius: 50%;
width: 28px;
height: 28px;
flex-direction: column;
background-repeat: no-repeat;
background-position: center center;
background-color: #eff0f1;
background-size: cover;
}
#chat-messages-list .message-row .message-container{
position: relative;
padding: 6px 12px;
box-sizing: border-box;
word-break: break-word;
border-bottom-left-radius: 1.25rem;
border-bottom-right-radius: 1.25rem;
border-top-left-radius: 1.25rem;
border-top-right-radius: 1.25rem;
}
#chat-messages-list .message-row .message-time{
display: flex;
align-items: center;
margin: 0 10px;
font-size: 12px;
color: var(--black-400);
text-align: left;
opacity: 0;
transition: opacity 275ms;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#chat-messages-list .message-row.arrow {
margin-top: 10px;
}
#chat-messages-list .message-row:not(.arrow) .message-sender,
#chat-messages-list .message-row.me .message-sender,
#chat-messages-list .message-row:not(.arrow) .chat-username,
#chat-messages-list .message-row.me .chat-username {
display: none;
}
#chat-messages-list .message-row.me{
flex-direction: row-reverse;
}
#chat-messages-list .message-row.me .message-container {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
background-color: #f2720c;
color: #fff;
}
#chat-messages-list .message-row.me.arrow .message-container {
border-top-right-radius: 1.25rem;
}
#chat-messages-list .message-row.you{
justify-content: flex-start;
}
#chat-messages-list .message-row.you .message-sender{
cursor: pointer;
}
#chat-messages-list .message-row.you .message-container {
background-color: #eff0f1;
color: #0c0d0e;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
margin-left: 38px;
}
#chat-messages-list .message-row.you.arrow .message-container {
border-top-left-radius: 1.25rem;
margin-left: 10px;
}
#chat-messages-list .message-row.you.arrow .message-container .chat-username {
cursor: pointer;
font-size: 16px;
margin-bottom: 5px;
font-weight: 600;
color: #0c0d0e;
}
#chat-messages-list .message-row.you .message-time{
text-align: right;
}
<div id="chat-messages-list">
<div class="message-row me arrow" data-messageid="1" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)"><div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div></div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">Hello!</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row me" data-messageid="2" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)"><div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div></div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">How Are you ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="3" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">Hello :)</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="4" data-senderid="1015">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.mantruckandbus.com/fileadmin/media/bilder/02_19/219_05_busbusiness_interviewHeader_1485x1254.jpg);"></div></div>
<div class="message-container">
<div class="chat-username">alex</div>
<div class="chat-message">Hello!</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="5" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">What are you doing ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you" data-messageid="6" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">Are you there ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you" data-messageid="7" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">What is your name ?</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row me arrow" data-messageid="8" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)"><div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div></div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">Can you help me ?</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="9" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">Yes</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="10" data-senderid="1015">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.mantruckandbus.com/fileadmin/media/bilder/02_19/219_05_busbusiness_interviewHeader_1485x1254.jpg);"></div></div>
<div class="message-container">
<div class="chat-username">alex</div>
<div class="chat-message">Ok:)</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="11" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">okay!</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you" data-messageid="12" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">OK!</div>
</div>
<div class="message-time">17:02</div>
</div>
<div class="message-row you" data-messageid="13" data-senderid="1012">
<div class="message-sender"><div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div></div>
<div class="message-container">
<div class="chat-username" >jackertools</div>
<div class="chat-message">Ok!</div>
</div>
</div>
</div>
Upvotes: 2
Views: 141
Reputation: 274106
Apply the radius to all then using a pseudo element you hide the non needed one.
Here is the relevant code:
#chat-messages-list .message-row.me .message-container {
border-bottom-right-radius: 1.25rem;
}
#chat-messages-list .message-row.me:not(.arrow) .message-container::before {
content: "";
position: absolute;
z-index:-1;
bottom: calc(100% + 2px);
right: 0;
width: 1rem;
height: 1rem;
background: inherit; /* put a random color here to see the trick */
}
Same logic for the you
elements
Full code
body {
margin: 0;
padding: 15px 0px;
font-family: sans-serif;
font-size: 15px;
}
#chat-messages-list .message-row {
display: flex;
word-wrap: break-word;
margin-bottom: 2px;
padding-left: 20px;
padding-right: 20px;
position: relative;
}
#chat-messages-list .message-row:hover .message-time {
opacity: 1;
}
#chat-messages-list .message-row .chat-avatar {
display: block;
border-radius: 50%;
width: 28px;
height: 28px;
flex-direction: column;
background-repeat: no-repeat;
background-position: center center;
background-color: #eff0f1;
background-size: cover;
}
#chat-messages-list .message-row .message-container {
position: relative;
padding: 6px 12px;
box-sizing: border-box;
word-break: break-word;
border-bottom-left-radius: 1.25rem;
border-bottom-right-radius: 1.25rem;
border-top-left-radius: 1.25rem;
border-top-right-radius: 1.25rem;
}
#chat-messages-list .message-row .message-time {
display: flex;
align-items: center;
margin: 0 10px;
font-size: 12px;
color: var(--black-400);
text-align: left;
opacity: 0;
transition: opacity 275ms;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#chat-messages-list .message-row.arrow {
margin-top: 10px;
}
#chat-messages-list .message-row:not(.arrow) .message-sender,
#chat-messages-list .message-row.me .message-sender,
#chat-messages-list .message-row:not(.arrow) .chat-username,
#chat-messages-list .message-row.me .chat-username {
display: none;
}
#chat-messages-list .message-row.me {
flex-direction: row-reverse;
}
#chat-messages-list .message-row.me .message-container {
border-bottom-right-radius: 1.25rem;
border-top-right-radius: 0;
background-color: #f2720c;
color: #fff;
}
#chat-messages-list .message-row.me:not(.arrow) .message-container::before {
content: "";
position: absolute;
z-index:-1;
bottom: calc(100% + 2px);
right: 0;
width: 1rem;
height: 1rem;
background: inherit;
}
#chat-messages-list .message-row.me.arrow .message-container {
border-top-right-radius: 1.25rem;
}
#chat-messages-list .message-row.you {
justify-content: flex-start;
}
#chat-messages-list .message-row.you .message-sender {
cursor: pointer;
}
#chat-messages-list .message-row.you .message-container {
background-color: #eff0f1;
color: #0c0d0e;
border-bottom-left-radius: 1.25rem;
border-top-left-radius: 0;
margin-left: 38px;
}
#chat-messages-list .message-row.you:not(.arrow) .message-container::before {
content: "";
position: absolute;
bottom: calc(100% + 2px);
z-index:-1;
left: 0;
width: 1rem;
height: 1rem;
background: inherit;
}
#chat-messages-list .message-row.you.arrow .message-container {
border-top-left-radius: 1.25rem;
margin-left: 10px;
}
#chat-messages-list .message-row.you.arrow .message-container .chat-username {
cursor: pointer;
font-size: 16px;
margin-bottom: 5px;
font-weight: 600;
color: #0c0d0e;
}
#chat-messages-list .message-row.you .message-time {
text-align: right;
}
.you .message-container {
border-bottom-left-radius:10px;
}
<div id="chat-messages-list">
<div class="message-row me arrow" data-messageid="1" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)">
<div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">Hello!</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row me" data-messageid="2" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)">
<div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">How Are you ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="3" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">Hello :)</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="4" data-senderid="1015">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.mantruckandbus.com/fileadmin/media/bilder/02_19/219_05_busbusiness_interviewHeader_1485x1254.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">alex</div>
<div class="chat-message">Hello!</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you arrow" data-messageid="5" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">What are you doing ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you" data-messageid="6" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">Are you there ?</div>
</div>
<div class="message-time">17:00</div>
</div>
<div class="message-row you" data-messageid="7" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">What is your name ?</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row me arrow" data-messageid="8" data-senderid="1001">
<div class="message-sender" onclick="_chatUserDetails(1001)">
<div class="chat-avatar" style="background-image: url(https://i.pinimg.com/originals/11/54/5b/11545b03970ce036070c48944c1aa66e.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">seyit55</div>
<div class="chat-message">Can you help me ?</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="9" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">Yes</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="10" data-senderid="1015">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.mantruckandbus.com/fileadmin/media/bilder/02_19/219_05_busbusiness_interviewHeader_1485x1254.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">alex</div>
<div class="chat-message">Ok:)</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you arrow" data-messageid="11" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">okay!</div>
</div>
<div class="message-time">17:01</div>
</div>
<div class="message-row you" data-messageid="12" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">OK!</div>
</div>
<div class="message-time">17:02</div>
</div>
<div class="message-row you" data-messageid="13" data-senderid="1012">
<div class="message-sender">
<div class="chat-avatar" style="background-image: url(https://www.romania-insider.com/sites/default/files/featured_images/teenager-laptop-sxchu.jpg);"></div>
</div>
<div class="message-container">
<div class="chat-username">jackertools</div>
<div class="chat-message">Ok!</div>
</div>
</div>
</div>
Upvotes: 5