Skip to main content

How to Create Chat Bubbles in CSS

At first, you need to write the appropriate HTML markup. Refer to the examples below:
INPUT HTML <div class="talk-bubble"> <div class="talktext"> <p>CSS Talk Bubble configured by classes. Defaults to square shape, no triangle. Height is auto-adjusting to the height of the text.</p> </div> </div> <div class="talk-bubble tri-right left-top"> <div class="talktext"> <p>This one adds a right triangle on the left, flush at the top by using .tri-right and .left-top to specify the location.</p> </div> </div> <div class="talk-bubble tri-right left-in"> <div class="talktext"> <p>This talk-bubble uses .left-in class to show a triangle on the left slightly indented. Still a blocky square.</p> </div> </div> <div class="talk-bubble tri-right round btm-left"> <div class="talktext"> <p>And now using .round we can smooth the sides down. Also uses .btm-left to show a triangle at the bottom flush to the left.</p> </div> </div> <div class="talk-bubble tri-right border round btm-left-in"> <div class="talktext"> <p>Now we add a border and it looks like a comic. Uses .border .round and .btm-left-in</p> </div> </div> <div class="talk-bubble tri-right border btm-right-in"> <div class="talktext"> <p>Now flipped the other way and square. Uses .border and .btm-right-in</p> </div> </div> <div class="talk-bubble tri-right btm-right"> <div class="talktext"> <p>Flush to the bottom right. Uses .btm-right only.</p> </div> </div> <div class="talk-bubble tri-right round right-in"> <div class="talktext"> <p>Moving our way back up the right side indented. Uses .round and .right-in</p> </div> </div> <div class="talk-bubble tri-right round border right-top"> <div class="talktext"> <p>And finally on the right flush at the top. Uses .round .border and .right-top</p> </div> </div>
Now, you need to write the CSS script to assign properties. Refer to the examples below: CSS /* General CSS Setup */ body{ background-color: lightblue; font-family: "Ubuntu-Italic", "Lucida Sans", helvetica, sans; } /* container */ .container { padding: 5% 5%; } /* CSS talk bubble */ .talk-bubble { margin: 40px; display: inline-block; position: relative; width: 200px; height: auto; background-color: lightyellow; } .border{ border: 8px solid #666; } .round{ border-radius: 30px; -webkit-border-radius: 30px; -moz-border-radius: 30px; } /* Right triangle placed top left flush. */ .tri-right.border.left-top:before { content: ' '; position: absolute; width: 0; height: 0; left: -40px; right: auto; top: -8px; bottom: auto; border: 32px solid; border-color: #666 transparent transparent transparent; } .tri-right.left-top:after{ content: ' '; position: absolute; width: 0; height: 0; left: -20px; right: auto; top: 0px; bottom: auto; border: 22px solid; border-color: lightyellow transparent transparent transparent; } /* Right triangle, left side slightly down */ .tri-right.border.left-in:before { content: ' '; position: absolute; width: 0; height: 0; left: -40px; right: auto; top: 30px; bottom: auto; border: 20px solid; border-color: #666 #666 transparent transparent; } .tri-right.left-in:after{ content: ' '; position: absolute; width: 0; height: 0; left: -20px; right: auto; top: 38px; bottom: auto; border: 12px solid; border-color: lightyellow lightyellow transparent transparent; } /*Right triangle, placed bottom left side slightly in*/ .tri-right.border.btm-left:before { content: ' '; position: absolute; width: 0; height: 0; left: -8px; right: auto; top: auto; bottom: -40px; border: 32px solid; border-color: transparent transparent transparent #666; } .tri-right.btm-left:after{ content: ' '; position: absolute; width: 0; height: 0; left: 0px; right: auto; top: auto; bottom: -20px; border: 22px solid; border-color: transparent transparent transparent lightyellow; } /*Right triangle, placed bottom left side slightly in*/ .tri-right.border.btm-left-in:before { content: ' '; position: absolute; width: 0; height: 0; left: 30px; right: auto; top: auto; bottom: -40px; border: 20px solid; border-color: #666 transparent transparent #666; } .tri-right.btm-left-in:after{ content: ' '; position: absolute; width: 0; height: 0; left: 38px; right: auto; top: auto; bottom: -20px; border: 12px solid; border-color: lightyellow transparent transparent lightyellow; } /*Right triangle, placed bottom right side slightly in*/ .tri-right.border.btm-right-in:before { content: ' '; position: absolute; width: 0; height: 0; left: auto; right: 30px; bottom: -40px; border: 20px solid; border-color: #666 #666 transparent transparent; } .tri-right.btm-right-in:after{ content: ' '; position: absolute; width: 0; height: 0; left: auto; right: 38px; bottom: -20px; border: 12px solid; border-color: lightyellow lightyellow transparent transparent; } /* left: -8px; right: auto; top: auto; bottom: -40px; border: 32px solid; border-color: transparent transparent transparent #666; left: 0px; right: auto; top: auto; bottom: -20px; border: 22px solid; border-color: transparent transparent transparent lightyellow; /*Right triangle, placed bottom right side slightly in*/ .tri-right.border.btm-right:before { content: ' '; position: absolute; width: 0; height: 0; left: auto; right: -8px; bottom: -40px; border: 20px solid; border-color: #666 #666 transparent transparent; } .tri-right.btm-right:after{ content: ' '; position: absolute; width: 0; height: 0; left: auto; right: 0px; bottom: -20px; border: 12px solid; border-color: lightyellow lightyellow transparent transparent; } /* Right triangle, right side slightly down*/ .tri-right.border.right-in:before { content: ' '; position: absolute; width: 0; height: 0; left: auto; right: -40px; top: 30px; bottom: auto; border: 20px solid; border-color: #666 transparent transparent #666; } .tri-right.right-in:after{ content: ' '; position: absolute; width: 0; height: 0; left: auto; right: -20px; top: 38px; bottom: auto; border: 12px solid; border-color: lightyellow transparent transparent lightyellow; } /* Right triangle placed top right flush. */ .tri-right.border.right-top:before { content: ' '; position: absolute; width: 0; height: 0; left: auto; right: -40px; top: -8px; bottom: auto; border: 32px solid; border-color: #666 transparent transparent transparent; } .tri-right.right-top:after{ content: ' '; position: absolute; width: 0; height: 0; left: auto; right: -20px; top: 0px; bottom: auto; border: 20px solid; border-color: lightyellow transparent transparent transparent; } /* talk bubble contents */ .talktext{ padding: 1em; text-align: left; line-height: 1.5em; } .talktext p{ /* remove webkit p margins */ -webkit-margin-before: 0em; -webkit-margin-after: 0em; }
OUTPUT Watch this space after some time. [blockquote align="none" author="devrant.com"]Developers saying programming is pure logic have never done CSS in their life.[/blockquote]

Comments

Popular posts from this blog

How to Deal With Computer Fatigue

What is fatigue? The medical community generally views fatigue as a source of mystery — a complex physical condition that afflicts millions of people worldwide. It is not quite on the same level as being tired, as most people can easily say that they are beyond tired by the time fatigue sets in. Fatigue sets the body into a state of near-total lethargy. When fatigue sets in, When fatigue sets in, the continuation of other physical activities is almost always nearly impossible. Further activity could result in muscle spasms and pain in various parts of the body. Lower back pain is one of the most common ailments suffered by people with fatigue. In some cases, a fatigued individual may experience somnolence due to fatigue, though excessive physical labor is not the only cause of somnolence. Is mental fatigue real? It is also possible for a person to experience a sort of mental fatigue that, in most respects, is not linked to the overexertion of the body. The mind is just like any othe...

What's Better? Learn HTML, or Use a WYSIWYG Editor

Earlier days of web designing When I first started designing web pages back in 1997, it was necessary for me to learn the HTML markup language. At that particular time, there were some what you see is what you get editors, but almost everyone that design web pages used raw HTML and understood how it worked. Now, seven or eight years later, we find that be market is flooded with wysiwyg editors such as Dreamweaver that allow anybody to design web pages as easily as they can create a Microsoft Word document. Benefits of knowing HTML Whenever I take someone under my wing, and start teach them about Internet marketing, and designing web pages, the first thing that I tell them is that they should learn the basics of HTML. While I recommend that they use Dreamweaver for most of their web page designs, it’s always helpful to be able to go into the code view and understand what they are looking at.It also helps whenever viewing the source code of other people’s web pages, to see how they di...