我想制作一个只有CSS的语音泡泡。到目前为止,我有这个......
div {
position: relative;
background: #fff;
padding: 10px;
font-size: 12px;
text-align: center;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
}
div:after {
content: "";
display: block;
width: 0;
height: 0;
position: absolute;
left: 50%;
bottom: -60px;
margin-left: -15px;
border-width: 30px 20px 30px 20px;
border-style: solid;
border-color: #fff transparent transparent transparent;
}
... 几乎完全我想要的东西。但是,我希望整个事物周围有一个轻微的边框。
显然,在主要部分,将border: 1px solid #333
添加到div
就很简单。
但是,由于气泡的尾部是边框黑客,我无法使用它的边框。
我尝试设置0 0 1px #333
的方框阴影,但浏览器将边框应用于元素的矩形形状(我猜他们应该做什么)。
我的下一个想法是找到一个看起来像气泡尾巴的Unicode字符,并将其绝对定位在那里,边框为text-shadow
,并使用主要气泡的z-index
来隐藏顶部阴影文本。
什么Unicode字符适合这个?我应该做些不同的事吗?我需要诉诸图像吗?
我只需要支持Mobile Safari。 :)
答案 0 :(得分:2)
<div>Hello Stack Overflow!<span></span></div>
div span:after {
content: "";
display: block;
width: 0;
height: 0;
position: absolute;
left: 50%;
bottom: -51px;
margin-left: -15px;
border-width: 20px 20px 30px 20px;
border-style: solid;
border-color: #000 transparent transparent transparent;
}
答案 1 :(得分:1)
这是一个类似的解决方案:
<div>Hello Stack Overflow!<span></span></div>
body {
background: #ccc;
}
div {
position: relative;
background: #fff;
padding: 10px;
font-size: 12px;
text-align: center;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
border: 1px solid #333;
}
div:after {
content: "";
display: block;
width: 0;
height: 0;
position: absolute;
left: 50%;
bottom: -60px;
margin-left: -16px;
border-width: 30px 20px 30px 20px;
border-style: solid;
border-color: green transparent transparent transparent;
}
div span
{
border-color: #FF0000 transparent transparent;
border-style: solid;
border-width: 25px 15px;
bottom: -51px;
margin-left: -65px;
position: absolute;
z-index: 10;
}
答案 2 :(得分:1)
对于你建议的Unicode字符方法,最合适的是▼U + 25BC BLACK DOWN-POINTING TRIANGLE。我不知道iOS是否有字形。
答案 3 :(得分:0)
您可以使用filter
属性box-shadow()
来执行此操作...
-webkit-filter: drop-shadow(1px 1px 1px #111) drop-shadow(-1px -1px 1px #111);