Create a Stylish Callout Box with CSS
I recently needed to create a callout box using only CSS. I was able to do this using the css :before and :after Pseudo-elements. The trick was adding the border color to the side I wanted the triangle to point towards. Here is the CSS.
#comment{
position: relative;
padding: 10px;
width: 150px;
height: 150px;
background-color: #F0F0F0;
border: 1px solid #D0D0D0;
-webkit-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
}
#comment:after, #comment:before {
border: solid transparent;
content: ' ';
height: 0;
position: absolute;
width: 0;
}
#comment:after {
border-color: rgba(240, 240, 240, 0);
border-bottom-color: #F0F0F0;//Change this to change direction of triangle
border-width: 9px;
top: -18px;
left: 7px;
}
#comment:before {
border-color: rgba(208, 208, 208, 0);
border-bottom-color: #D0D0D0;//Change this to change direction of triangle
border-width: 10px;
top: -20px;
left: 6px;
}
Here is a fiddle that shows what this produces. I also found this great resource online that mimics what I am producing here.
I actually liked Simon's approach to this and thought it was worth writing down his code for future reference. Just in case his site is ever taken down.
.arrow_box {
position: relative;
background: #88b7d5;
border: 4px solid #c2e1f5;
}
.arrow_box:after, .arrow_box:before {
bottom: 100%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.arrow_box:after {
border-color: rgba(136, 183, 213, 0);
border-bottom-color: #88b7d5;
border-width: 30px;
left: 50%;
margin-left: -30px;
}
.arrow_box:before {
border-color: rgba(194, 225, 245, 0);
border-bottom-color: #c2e1f5;
border-width: 36px;
left: 50%;
margin-left: -36px;
}
No comments:
Post a Comment