CSS 中的动态对话泡泡

Dynamic speech bubble in CSS

我正在尝试做这样的事情:

我想使用纯 CSS。 Bootstrap v3 已经加载。

我已经非常接近

.bubble {
                   position:relative;
                   left: 15px;
                   padding: 10px;
                   background: #FFFFCC;
                   margin: 5px 5px;
                   max-width: 250px;
                   border: #FFCC00 solid 1px;
                }

.bubble:before {
                   position:absolute;
                   content: ""; 
                   top:15px;left:-10px;
                   border-width: 10px 15px 10px 0px;
                   border-color: transparent  #FFFFCC;
                   border-style: solid;
                 }

但结果并不是我想要的。

我四处搜索并摆弄了一下,但没有找到适合我需要的优雅解决方案。

几年前我会使用表格和图像来完成此操作,但在 2015 年肯定会有更好的方法吗?

这是 2015 年的版本...

.bubble {
    position: relative;
    background: #FFFFCC;
    border: 1px solid #FFCC00;
    max-width:250px;
    padding:10px;
    font-family:arial;
    margin:0 auto;
    font-size:14px;
    border-radius:6px;

}
.bubble:after,
.bubble:before {
    right: 100%;
    top: 50%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}

.bubble:after {
    border-color: rgba(255, 255, 204, 0);
    border-right-color: #FFFFCC;
    border-width: 15px;
    margin-top: -15px;
}
.bubble:before {
    border-color: rgba(255, 204, 0, 0);
    border-right-color: #FFCC00;
    border-width: 16px;
    margin-top: -16px;
}

实际查看:

http://jsfiddle.net/ajahb5p1/

注意:

您只需更改 .bubble:after 定义中的 border-widthmargin-top 值即可调整箭头的大小(当前设置为 15px 和 -15px)

为确保它保留边框,您还需要更改 .bubble:before 定义中的这两个相同值(当前设置为 16px 和 -16px)