用纯css写出三角形
1、新建一个元素,随便什么元素,不过我习惯性的会用块元素来做。如果行内元素就display:block它。
<div
class="triangle"></div>
2、把它的宽高设置为height:0px;
width:0px;
3、设置边框border属性,用来实现三角形。
首先要了解border具体是怎么样的,我写了一个这样的样式:
border:50px
solid #000; border-color:#f00 #000 #f0f #00f;
在FF下面显示效果如下:
出现4个三角形合并成一个正方形。到这里就很清晰了,只要把想要的保留,其它的设置为透明就可以达到三角形的效果,那么:
border:50px
solid #000; border-color:#f00 transparent transparent
transparent;
在FF就可以看到一个红色三角形如下:
但是IE呢,尤其是坑爹的IE6会怎样? 如图:
这是因为它不支持transparent,所以不会透明,那么可以这样:
border:50px solid
#000; border-color:#f00 transparent transparent transparent; border-style:solid
dashed dashed
dashed;
在你想它透明的地方对应的把border-style设置为dashed,IE6就可以达到跟FF一样的效果了。
那这样也就只是实现了4个方向的三角形,那如果要直角对着45斜线方向的呢?那么可以用两个正方向的三角形并在一起来实现,如下图:
代码:
border:50px solid #000; border-color:#f00 #000
transparent transparent; border-style:solid solid dashed
dashed;
只要把颜色统一,就形成一个45斜线方向三角形,而在IE6却会是这样一种显示:
这是因为IE6有个行高撑开了,把行高设置为0就跟FF一样了:line-height:0px;
最终演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>用CSS画三角形</title>
<style type="text/css">
*{ margin:0px; padding:0px;}
.triangle{ display:block; height:0px; width:0px; border:50px solid #; border-color:#f00 transparent transparent transparent; border-style:solid solid dashed dashed; line-height:0px;}
</style>
</head>
<body>
<div class="triangle"></div>
</body>
</html>
事实上,我也是在写三角形才得知,当然上面的文字可想而知是百度的,下面是我用到的
.triangle_up, .triangle_down_red, .triangle_down_gray{
position:absolute; left:; top:; height:; width:; overflow:hidden; border-left:4px solid transparent; border-right:4px solid transparent;_border-left:4px solid #fff; _border-right:4px solid #fff;
}
.triangle_up{ border-bottom:4px solid #ca0309;}
.triangle_down_red{ border-top:4px solid #ca0309; }
.triangle_down_gray{ border-top:4px solid #c1c1c1;}
<div class="triangle_up"></div>
<div class="triangle_down_red"></div>
<div class="triangle_down_gray"></div>
用纯css写出三角形的更多相关文章
- css写出三角形(兼容IE)
css写出三角形 利用css写三角形,兼容IE7 .arrow-up { width:0px; height:0px; border-left:10px solid transparent; bo ...
- 利用css3特性写出三角形(兼容IE浏览器)
利用CSS写出三角形的效果 效果如图: 代码如下: .triangle-up { width:0px; height:0px; border-left:10px solid transparent; ...
- 纯CSS写三角形-border法
(1)有边框的三角形 我们来写下带边框的三角形. 如果是一个正方形,我们写边时,会用到border,但我们这里讨论的三角形本身就是border,不可能再给border添加border属性,所以我们需要 ...
- 纯CSS制作空心三角形和实心三角形及其实现原理
纯CSS制作空心三角形和实心三角形及其实现原理 在一次项目中需要使用到空心三角形,我瞬间懵逼了.查阅了一些资料加上自己的分析思考,终于是达到了效果,个人感觉制作三角形是使用频率很高的,因此记录下来,供 ...
- 用css画出三角形
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- 如何用css画出三角形
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- 用css画出三角形【转】
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
- 纯css写带小三角对话框
在实际样式中经常会遇到要写类似对话框的样式,而这种样式往往会有一个小三角,如下所示: 那么如何用css写出来呢,其实很简单,先让父元素相对定位,然后运用css的伪类before或after.就可以写个 ...
- css写出0.5px边框(一)
在移动端会出现线条太粗的现象,简单来说,是因为手机端的像素单位和ui的图比例是2:1,所以ui图的1px边框对我们来说就是0.5px,但是浏览器渲染的最小单位就是1px,下面给几种方法用css写出0. ...
随机推荐
- 1020. Tree Traversals (序列建树)
Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...
- php 如何开启session
1.如果你在session_start()前没有输出内容,哪怕是一个句号也不行,就可以直接使用session_start)_; 2.如果你之前已经有输出内容了,可以使用以下方法: <?php o ...
- PDF ITextSharp
示例源码 //Document:(文档)生成pdf必备的一个对象,生成一个Document示例 Document document = new Document(PageSize.A4, 30, 30 ...
- 录制游戏视频——fraps
http://pcedu.pconline.com.cn/341/3417224.html
- 【BZOJ 2878】 [Noi2012]迷失游乐园
Description 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩.进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该图中至多有一个环( ...
- .NET Json 解析到Dictionary,原生代码
之前一直使用微软自带的Json,也一直想试着自己解析下Json玩玩,于是花了一个晚上的时间写了个解析的类, 先说下思路,先从简单的说起:如:标准的JSon格式如:{"Key":&q ...
- MySQL 主主同步配置和主从配置步骤
★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...
- 深入js的面向对象学习篇(继承篇)——温故知新(三)
写这篇有关继承的文章时,突然想起,几天前的面试.因为习惯在学习知识的时候加上自己的理解,很喜欢用自己话来解释,于是乎当面试被问起继承原理时,噼里啪啦一大堆都是自己组织的话,(也可能是因为个人紧张.外加 ...
- uva 10791
还算比较水的一个数学题 求因子的最小和 总是用小的数去除 注意特判 是用int不行哦........ #include <cstdio> #include <cmath> ...
- linux查看磁盘使用情况
# 查看磁盘使用情况 $ df -l # 查看某个目录在哪个分区,比如查看/root文件夹在哪个分区 $ df /root # 查看linux系统具体分区情况 $ fdisk -l