用css写三角形

转自 http://bbs.blueidea.com/thread-2818535-1-1.html

<!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>
<title>www.zishu.cn</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
/*zishu.cn*/
*{ margin:0; padding:0; font-size:12px; font-family:Verdana, "宋体", Arial; line-height:1.8; list-style:none;}
#info,#nav{ margin:50px; border:1px dashed #FF3300; background:#FFFFCC; padding:50px;}
#info div{background:#FF0000; width:0px; height:0px; overflow:hidden; margin-bottom:10px;}
/*一些三角的写法*/
#com_a{ border-top:10px solid #FFFFCC;border-left:10px solid #FF3300;border-bottom:10px solid #FFFFCC;}
#com_b{ border-top:10px solid #FFFFCC;border-right:10px solid #FF3300;border-bottom:10px solid #FFFFCC;}
#com_c{ border-top:10px solid #FFFFCC;border-right:10px solid #FF3300;border-bottom:10px solid #FFFFCC;border-left:10px solid #FF3300;}
#com_d{ border-top:10px solid #FF3300;border-right:10px solid #FFFFCC;border-bottom:10px solid #FF3300;border-left:10px solid #FFFFCC;}
#com_e{ border-top:10px solid #FFFFCC;border-left:10px solid #FF3300;}
#com_f{ border-top:10px solid #FF3300;border-right:10px solid #FFFFCC;border-left:10px solid #FFFFCC;}
#com_g{ border-right:10px solid #FFFFCC;border-bottom:10px solid #FF3300;border-left:10px solid #FFFFCC;}
#com_h{ border-top:10px solid #FF3300;border-bottom:10px solid #FF3300;border-left:10px solid #FFFFCC;}
#com_i{ border-top:10px solid #FF3300;border-right:10px solid #FF3300;border-bottom:10px solid #FF3300;border-left:10px solid #FFFFCC;}
</style>
</head>
<body>
<div id="info">
<h1>一些三角形的写法</h1>
  <div id="com_a"></div>
  <div id="com_b"></div>
  <div id="com_f"></div>
  <div id="com_g"></div>
  <div id="com_c"></div>
  <div id="com_d"></div>
  <div id="com_e"></div>
  <div id="com_h"></div>
  <div id="com_i"></div>
</div>
</body>
</html>
效果图:

另外特别声明一点:  在上面的样式中最好加上width: 0; height: 0; 否则在IE7(IE6没环境,所以没测)中样式会出问题.

### 使用 CSS 创建三角形 在网页开发中,使用 CSS 创建三角形是一种常见的技巧。这可以通过设置元素的 `width` 和 `height` 为 0 并利用边框属性来实现[^4]。 #### 基本原理 当一个 HTML 元素被赋予零宽高时,它本身不会占据任何空间。此时,如果给该元素添加不同颜色或透明度的边框,则会因为这些边框相交而形成一个三角形效果。具体来说: - 将元素的宽度 (`width`) 和高度 (`height`) 设定为 0; - 利用 `border-width` 来定义各条边界的厚度; - 应用 `border-style: solid;` 让边界呈现实线形式; - 对应位置上的单一边界应用非透明色值作为其颜色,其余三个方向设为 `transparent` 即可得到所需朝向的小三角形[^2]。 下面是一个简单的例子展示如何创建红色向上指的三角形: ```html <style> .triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 50px solid transparent; border-bottom: 100px solid red; } </style> <body> <div class="triangle-up"></div> </body> ``` 此代码片段中的 `.triangle-up` 类名下的样式规则设置了左、右两侧边框为半透明状态,并且底部边框采用红色填充,从而构成了一个指向上的红色三角形。 对于其他方向的三角形,只需改变哪一侧的边框是有颜色即可调整方向。例如,要制作向下指的三角形,应该把顶部而不是底部分配成可见的颜色;同理也可以轻松构建左右两个方向的版本[^3]。 另外一种更灵活的方式是借助渐变(`linear-gradient`)函数来完成相同的工作,不过这种方法不如传统的边框法直观易懂,在性能上也没有明显优势,因此在此不做详细介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值