This post will take less than a minute to read.
A while back I explained how to make a speech bubble using CSS and pseudo-elements. But what about if instead of giving the speech bubble a drop shadow, we wanted to give it a border?
Normally this wouldn’t be too difficult, but due to the shape of a speech bubble—a rectangle with a triangle underneath it—it becomes more difficult. We can easily give the rectangle a border, but considering the technique used to create the triangle, also giving that a border isn’t possible.
Luckily, we can use pseudo-elements for this, and by duplicating our triangle, increasing its size, and sitting it behind our original, we can give the appearance of a seamless border: http://jsfiddle.net/joshnh/26Lww/