嘿那里,
我需要创建一个如下所示的 div:
到目前为止我想出的是:http: //jsfiddle.net/suamikim/ft33k/
.bubble {
position: relative;
width: 80px;
height: 160px;
border: 1px solid #33A7F4;
border-radius: 9px;
margin: 100px;
-webkit-box-shadow: 0px 0px 20px 2px #33A7F4;
-moz-box-shadow: 0px 0px 20px 2px #33A7F4;
-ms-box-shadow: 0px 0px 20px 2px #33A7F4;
-o-box-shadow: 0px 0px 20px 2px #33A7F4;
box-shadow: 0px 0px 20px 2px #33A7F4;
}
.bubble:after, .bubble:before {
content: ' ';
position: absolute;
width: 0;
height: 0;
border: 17px solid transparent;
right: 100%;
}
.bubble-left:before {
border-top-color: #33A7F4;
border-right-color: #33A7F4;
top: 60px;
}
.bubble-left:after {
border-width: 16px;
border-top-color: black;
border-right-color: black;
top: 61px;
}
如您所见,“唯一”的问题是气泡尾部周围的盒子阴影(三角形箭头)。
我也尝试过不使用之前和之后的伪类,而是使用第二个 div,它只包含三角形(带有变换、旋转等),但显然这并没有导致我没有成功。
静态图片不是选项,因为矩形本身的大小和尾部的位置都是动态的,并且可以在“运行时”期间更改。
我还想出了一个解决方案,我用动态生成的 svg 创建边框和阴影。如果找不到其他选项,我将坚持使用此解决方案,但感觉就像“黑客”一样强大。我没有在这里发布这个解决方案,因为它涉及 2 个 javascript-framworks(extjs 和 raphael),这个问题应该是关于 html 和 css 的。尽管如此,如果有人对此感兴趣,我仍然可以提供它...
最后一件事:浏览器兼容性并不是什么大问题。如果它在最新版本的大版本中工作(firefox、chrome、opera,即 10,...)一切都很好;)
谢谢,
米克