利用纯CSS创建一个三角形

   网页中对话气泡框下边的小三角是非常有用的,绘制的方法很多,想什么字体图标、小图片之类的都可以,但是都不够灵活和快捷,有了 CSS3 之后绘制一个三角形就非常简单了


  首先当然是一个任意的空标签来当小三角,下边的 CSS 丢进去即可:

 代码如下  

.triangle{
 left:50%;
 margin-left:-5px;
 width:5px;
 height:5px;
 background:#FAFAFA;
 bottom:-4px;
 position:absolute;
 transform:rotate(45deg);
 -ms-transform:rotate(45deg);
 -moz-transform:rotate(45deg);
 -webkit-transform:rotate(45deg);
 -o-transform:rotate(45deg);
 border:1px solid #E5E5E5;
 border-top:none;
 border-left:none
}

  代码利用 CSS3 的 2D 旋转属性对正方形进行旋转,并且隐藏掉顶部左右两边的边框就可以实现小三角了。

  例子

 代码如下  

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="/libs/jquery/1.4.4/jquery.min.js"></script>
<title>三种纯CSS实现三角形的方法</title>
<link rel="stylesheet" >
<style type="text/css">
.page-info { padding:8px 15px; background:#fcea9e; border-bottom:1px solid #b6bac0; font:normal 16px Georgia; }
.page-info h1 { float:left; }
.page-info a { font-weight:bold; color:#222; }  
.return-article { float:right; }
.return-article h2{ display:inline; }

/*border模拟tips*/
.message-box { position:relative; float:left; margin:80px 0 0 100px; width:240px;

height:60px; line-height:60px; background:#E9FBE4; box-shadow:1px 2px 3px #E9FBE4;

border:1px solid #C9E9C0; border-radius:4px; text-align:center; color:#0C7823; }
.triangle-border { position:absolute; left:30px; overflow:hidden; width:0; height:0;

border-width:10px; border-style:solid dashed dashed dashed; }
.tb-border { bottom:-20px; border-color:#C9E9C0 transparent transparent transparent; }
.tb-background { bottom:-19px; border-color:#E9FBE4 transparent transparent transparent; }

/*字符模拟tips*/
.triangle-character { position:absolute; left:30px; overflow:hidden; width:26px; height:26px; font:normal 26px "宋体"; }
.tc-background { bottom:-12px; color:#E9FBE4; }
.tc-border {  bottom:-13px; color:#C9E9C0;}

/*css3 transfrom 模拟tips*/
.triangle-css3 { position:absolute; bottom:-8px; bottom:-6px; left:30px; overflow:hidden; width:13px; height:13px; background:#E9FBE4; border-bottom:1px solid #C9E9C0; border-right:1px solid #C9E9C0;}
.transform { -webkit-transform:rotate(45deg); -moz-transform:rotate(45deg); -o-transform:rotate(45deg);

transform:rotate(45deg); }
/*ie7-9*/
.ie-transform-filter { 
    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865475, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865475, SizingMethod='auto expand')";
    filter: progid:DXImageTransform.Microsoft.Matrix( M11=0.7071067811865475,M12=-0.7071067811865477,

M21=0.7071067811865477,M22=0.7071067811865475,SizingMethod='auto expand');
}
</style>
</head>
<body>
<div class="message-box">
  <span>我是利用 border 属性实现的</span>
  <div class="triangle-border tb-border"></div>
  <div class="triangle-border tb-background"></div>
</div>

<div class="message-box">
  <span>我是利用 ◆ 字符实现的</span>
  <div class="triangle-character tc-border">◆</div>
  <div class="triangle-character tc-background">◆</div>
</div>

<div class="message-box">
  <span>我是利用 css transfrom 属性实现的</span>
  <div class="triangle-css3 transform ie-transform-filter"></div>
</div>

</body>
</html>

时间: 2025-01-21 01:03:55

利用纯CSS创建一个三角形的相关文章

利用纯 CSS 创建一个三角形

首先当然是一个任意的空标签来当小三角,下边的 CSS 丢进去即可:  代码如下 复制代码 .triangle{  left:50%;  margin-left:-5px;  width:5px;  height:5px;  background:#FAFAFA;  bottom:-4px;  position:absolute;  transform:rotate(45deg);  -ms-transform:rotate(45deg);  -moz-transform:rotate(45deg

纯css制作一个三角形箭头

我们先来看个样式,如果设置元素边框,会怎么样: test 似乎看不出什么,让我给四个边框加上不同的颜色吧再看看吧: test 是不是发现了些什么?对,让我们把中间的文字去掉吧:   这样,就出现4个三角形了,然后我们如果需要顶部那个三角形,只需要将border的left.right.bottom设置成背景色就行了:   这样,我们需要的三角形就出现了,并且可以设置4个不同方向的了:      样式代码很简单,就几句话:  代码如下 复制代码 <strong style="float: le

用CSS创建一个布局居中的页面

css|创建|页面 最近有一个读者问到,怎样用CSS创建一个居中的页面布局.该读者所追求的,是要达到这样一种效果,就如同在一个1024象素宽的页面上设计出一个800象素宽的表格.这是一种使用很广泛的页面设计方法,按照传统,它要靠嵌套表格才能达到这一效果,因此,这位读者追寻一种用CSS来达到这一效果的方法并不让人惊讶. 用CSS来创建一个居中的页面设计的基本技术相对来说较简单,不过与同类相比,也简单不了太多.让我们看一下,要将这种由来已久的基于表格的设计转变成用CSS,该怎样做. 传统的做法:居中

CSS创建一个鼠标感应换图片的按钮

  这个CSS教程将教你如何使用CSS创造一个漂亮的动态按钮 ,所谓动态,指的是默认状态和聚焦状态时背景按钮图片不一样.  这个CSS教程将教你如何使用CSS创造一个漂亮的动态按钮 ,所谓动态,指的是默认状态和聚焦状态时背景按钮图片不一样,让我们看一下这是怎么完成的:    滑动门  因为我们希望我们的按钮是灵活的,我们将要作出的背景图像,可以文本自动改变大小.对于这一点,我们就用心爱的滑动门技术;两个互补图片所创造出来的幻觉,一个默认的,一个点击时出现的.  我们的按钮,将是一个基本的标签嵌套

Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室

先来看客户端fla的构成: 第一帧:登录界面 第一帧的代码: import flash.events.MouseEvent; import com.adobe.utils.StringUtil; import utils.Alert; stop(); var userName:String=""; Alert.init(stage); btnLogin.addEventListener(MouseEvent.CLICK,btnLoginClick); function btnLogin

利用dos命令创建一个装秘密的文件夹

windows系统中经常会有些特殊的文件夹,今天就来说一种文件夹名中带有"."的文件夹是任何创建的. 第一步:在运行中输入cmd,回车,打开命令行窗口 第二步:在命令行窗口中切换到想要建立文件夹的硬盘分区,如D盘,输入d:然后回车. 第三步:输入 MD 123.. 回车,注意文件夹名后有2个小数点 OK,搞定,看看你的D盘根目录下是不是多了一个名为123.的文件夹了?它是既不能进入又不能被删除的!不信你就试试看吧 你再注意这个文件大小,点文件右键,再点属性,是大小为0. 那么,如果自己

为打印输出创建一个CSS样式

css|创建|打印 有的时候,你可以不必在你的Web站点上创建一个独立的与打印相关的页面. 大多数的Web页面都显示在电脑屏幕上,人们通过屏幕观看,但是,有时候用户想要将一些网上的内容打印出来,这就需要与打印媒体连接起来.由于原来采用的是能让Web页面在屏幕上显示的效果很好的那种格式,但在打印时效果并不那么好,Web创建者们通常都会创建一些独立的页面,这些页面与打印机联系紧密,而用户也需要经常打印这些页面.但如果你使用了XHTML标记和CSS,你就没必要再创建一个独立的与打印机相连接的页面了,你

使用纯 CSS 设计3D按钮

css|按钮|设计 CSS 按钮的效率远比基本图像的按钮的效率高得多,因为它们全部都是基于文本的.所有要用 XHTML 标记只是一个无序列表--CSS 样式负责其余部分.而且,你不需要任何 JavaScript 来交换图像以实现翻卷效果,因为 CSS 伪类(pseudoclass)能够让你为链接的每个状态(链接<link>.已访问<visited>.悬停<hover>.激活<active>)建立独立的样式. 纯 CSS 按钮唯一的问题是它们看上去相当单调,只

CSS创建各栏同高的多栏布局

css|创建 关于我的个人网站被问到最多的问题是: 你是怎么让右边这一栏的背景色一直向下扩展的? 这确实是个很简单的问题,也许你也已经相当熟悉,但很多人还不知道.下面介绍的技术是一个简捷的小技巧,它一定可以帮助你解决这个头痛的问题. 垂直伸展 CSS有一些多少让人感到沮丧的特性,比如元素在垂直方向上只按照它确实需要的长度来伸展.也就是说,如果把一个200像素高的图片放在一个<div>中,这个<div>只会伸展到200像素高. 当你用<div>把你的标签分开(译者按,指结