Tip中小三角的实现

前段时间专门研究了一下腾讯微博的Tip,很有意思!tip中的小箭头是用“◆”(encode为:◆)字符模拟的。以前也写过类似的实现方案《用css的border属性实现三角》。用“◆”字符模拟小三角有一个有点就是:比如tip有border时,也可以用两个绝对定位的“◆”字符模拟。
                                                                                                                    作者:愚人码头 
                                                                                             http://www.css88.com/archives/3904


利用“◆”符号字体颜色遮罩效果,两个“◆”叠加,将上面的“◆”位置右(下,上,左)移1像素,前景色与提示框背景色相同,因此在下面的“◆”(前景色与提示框边框色一样)会流出1像素,视觉上形成了三角形的尖角边框。

 

源代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
* {
	margin:0;
	padding:0
}
body {
	font:12px/1.5 Arial, Helvetica, sans-serif;
	color:#454545;
}
img {
	border:none
}
a {
	text-decoration:none;
	color:#333
}
a:hover {
	text-decoration:underline
}
em, strong {
	font-style:normal;
	font-weight:normal
}
#Message {
	background:#eee;
	width:500px;
	margin:100px auto 0px;
	padding:1px;
}
.Message_outer {
	border:1px solid #aaa;
	margin:5px;
	background:#fff;
}
.Message_outer h3 {
	background: url(images/h3bg.jpg) left bottom #dedede;
	padding:0px 10px 0px 16px;
	color:#333;
	height:50px;
	line-height:50px;
	font-size:24px
}
.Message_inner {
	padding:10px;
}
.Message_inner dl {
	border-bottom:1px dashed #ababab;
	padding-bottom:10px;
	margin-bottom:10px;
	height:1%;
}
.Message_inner dl dt {
	overflow:hidden;
}
.Message_inner dl a.touxiang {
	display:block;
}
.left {
	float:left;
}
.right {
	float:right;
}
.Message_inner dl a.touxiang img {
	width:100px;
	height:100px;
	border:1px solid #ccc;
	padding:2px
}
.triangle {
	position:absolute;
	top: 30%;
	font-size:18px;
}
.t-lft {
	left:-9px;
}
.t-rgt {
	right:-9px
}
.triangle em {
	color:#ccc;
}
.t-rgt em {
	right:-1px;
	position:absolute
}
.triangle span {
	position:absolute;
	color:#fff
}
.t-lft span {
	left:2px;
	top:0px
}
.t-rgt span {
	right:1px
}
.tips {
	position:relative;
	border:1px solid #ccc;
	padding:10px;
	width:330px;
	border-radius:5px;
	box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	-moz-box-shadow:1px 1px 2px rgba(0,0,0,.2);
	-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.2);
}
.tips a {
	color:#f30
}
</style>
</head>
<body>
<div id="Message">
  <div class="Message_outer">
    <h3><span> </span>@Twitter</h3>
    <div class="Message_inner">
      <dl>
        <dt><a href="#" class="touxiang left"><img src="images/logo.jpg" /></a>
          <div class="tips right">
            <p>@<a href="#">Tomi-Eric</a>:做插畫師或設計師是一個非常理想和神經質的。我的世界只允許我抹過的色彩 </p>
            <div class="triangle t-lft"> <em>◆</em><span>◆</span> </div>
          </div>
        </dt>
      </dl>
      <dl>
        <dt><a href="#" class="touxiang right"><img src="images/user.jpg" /></a>
          <div class="tips left">
            <p>@<a href="#">Gino_sin</a>:做插畫師或設計師是一個非常理想和神經質的。我的世界只允許我抹過的色彩 </p>
            <div class="triangle t-rgt"><em>◆</em><span>◆</span></div>
          </div>
        </dt>
      </dl>
      <dl>
        <dt><a href="#" class="touxiang left"><img src="images/logo.jpg" /></a>
          <div class="tips right">
            <p>@<a href="#">Tomi-Eric</a>:做插畫師或設計師是一個非常理想和神經質的。我的世界只允許我抹過的色彩 </p>
            <div class="triangle t-lft"> <em>◆</em><span>◆</span> </div>
          </div>
        </dt>
      </dl>
    </div>
  </div>
</div>
</body>
</html>

效果图:

posted @ 2011-08-28 10:58  Tomi-Eric's  阅读(591)  评论(0编辑  收藏  举报