css绘制三角形原理
1、新建一个元素,将它的宽高都设置为0;然后通过设置border属性来实现三角形效果,下面是css绘制三角形的原理:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.caret{
height:0;/*将宽高都设置为0*/
width:0;
border:100px solid #000;
border-color:red green yellow blue;
}
p{color:red;}
</style>
</head>
<body>
<div class="caret"></div>
<p>
将宽高都设置为0<br/>
border-color:red green yellow blue;将变宽四个方向颜色设置成不同的颜色以便观察
</p>
</body>
</html>
效果:(为了jsfiddle防止被屏蔽,上面已插入了源代码)
从上面的效果可以看到,四个三角形拼成了一个正方形,我们只要把其中一个想要的三角形保留下来,其他的设置为透明的,就可以达到想要的效果了;
如border-color:red transparent transparent transparent;就能看到一个红色三角形
效果:
但是ie6不支持transparent,所以没有透明效果,这就需要把border-style:solid dashed dashed dashed;实现了透明效果;
2、如果要实现直角对着45度斜线方向的三角形,可以将两个三角形拼在一起来实现;
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
.caret{
height:0;/*将宽高都设置为0*/
width:0;
border:100px solid #000;
border-color:red green transparent transparent;
border-style:solid solid dashed dashed;
}
p{color:red;}
</style>
</head>
<body>
<div class="caret"></div>
<p>
border-color:red green transparent transparent transparent;
border-style:solid solid dashed dashed;
</p>
</body>
</html>
效果:
注意:此方法在ie6中,会有个行高撑开了,需要把行高设置为0,line-heiht:0;
下面用css绘制三角形的原理来绘制一个三角形气泡
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>除去列表最后一个li的底边框</title>
<style>
body,p{margin:0;padding:0;}
#container{
margin:0 auto;
position:relative;
width:400px;
height:100px;
border:10px solid #81A7FF;
}
#caret{
position:absolute;
width:50px;
height:50px;
left:100px;
bottom:-50px;
}
.triangle1,.triangle2{ display:block;
height:0;/*将宽高都设置为0*/
width:0;
line-height:0;
border-style:solid dashed dashed dashed;
}
.triangle1{
border-width:50px;
border-color:#81A7FF transparent transparent transparent;
}
.triangle2{
position: absolute;
top:-14px;/*这个数据三角函数是计算出来的*/
border-width:50px;
border-color:#fff transparent transparent transparent;
}
p{color:#81A7FF;text-align: center;line-height: 100px;}
</style>
</head>
<body>
<div id="container">
<div id="caret">
<span class="triangle1"></span>
<span class="triangle2"></span>
</div>
<p>
css绘制三角形气泡
</p>
</div>
</body>
</html>
效果:
.triangle2的top值不能直接是10px,不然显示的三角形边框会小于10,会导致气泡部分小于容器div元素的边框(border-width);top值的计算:(border-width)*(border-width)/((border-width)*sin45)
css绘制三角形原理的更多相关文章
- CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...
- CSS学习笔记(8)--纯CSS绘制三角形(各种角度)
纯CSS绘制三角形(各种角度) CSS三角形绘制方法,学会了这个,其它的也就简单. 我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多 ...
- CSS绘制三角形和箭头,不用再用图片了
前言 还在用图片制作箭头,三角形,那就太lou了.css可以轻松搞定这一切,而且颜色大小想怎么变就怎么变,还不用担心失真等问题. 先来看看这段代码: /**css*/.d1{ width: 0; he ...
- CSS绘制三角形和箭头
<html> <head> <meta charset="utf-8"> <title>CSS绘制三角形和箭头</title& ...
- CSS绘制三角形的原理剖析
今天学习Bootstrap时候,看到按钮的向下三角形源码: .caret { display: inline-block; ; ; margin-left: 2px; vertical-align: ...
- CSS 制作三角形原理剖析
使用css制作三角形其实原理很简单,下面一步步解析. 1.html代码如下 <div class="triangle"> </div> 2.CSS代码 .t ...
- 用CSS绘制三角形
其实用HTML CSS绘制三角行 是非常简单的 ,我在网上看了不少人写的博客,里面写的好复杂样子,反正我是看的云里雾里的,说实话是挺简单的. 首先提出一段代码: <!DOCTYPE html&g ...
- css画三角形原理解析
<div id="div1"></div><div id="div2"></div><div id=&qu ...
- 纯Css绘制三角形箭头三种方法
在制作网页的过程中少不了绘制类似图片的三角形箭头效果,虽然工程量不大,但是确实麻烦.在学习的过程中,总结了以下三种方法,以及相关的例子. 一.三种绘制三角形箭头方法 1.方法一:利用overflow: ...
随机推荐
- 【九度OJ】题目1111:单词替换
题目1111:单词替换 题目描述: 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单 ...
- UE4动作流程总结
右键新窗口打开看大图
- MVC 会员注册
@{ ViewBag.Title = "Register"; } <script src="~/Scripts/jquery-2.1.0.js">& ...
- git 证书错误
git clone https://github.com/openstack-dev/devstack.git Cloning into 'devstack'... error: server cer ...
- Redis主从复制深入剖析
Redis是一个开源的,遵守BSD许可协议的key/value缓存系统,并由其高效的响应速度以及丰富的数据结构而闻名.Redis在京东的使用也是非常普遍的,包括很多关键业务上的 使用,由于Redis官 ...
- iOS集成丁香园DXY OAuth 登陆 swift代码示例
问:iOS集成OAuth登陆分几步? 答:和把大象放冰箱里一样. 第一步:打开webview,跳转到登陆页面: let url = "https://auth.dxy.cn/conn/oau ...
- 360等杀掉了app的主进程后 ,如何自动开启 如何防止被kill
如何阻止360等进程查杀工具停止App后台进程安全软件优化内存时需要关闭没用的进程既然你同意使用360,,也允许了360的最高权限..那么他就有足够的权限来杀掉app后台进程. 一 如何保证app进程 ...
- java 多线程(synchronized)
package com.example; public class App { public static void main(String[] args) { doRunable dr = new ...
- Java设计模式8:迭代器模式
迭代器模式 迭代器模式又叫做游标(Cursor)模式,其作用是提供一种方法访问一个容器元素中的各个对象,而又不暴露该对象的内部细节. 迭代器模式结构 迭代器模式由以下角色组成: 1.迭代器角色 负责定 ...
- 用VS添加引用dll也会出错?你遇到过吗?
使用C#开发,我们经常引用各种类库,我们通常是在Visual Studio中引用上面单击右键,添加引用...,浏览...,选择dll,确定,但是这样做会不会有什么问题呢?当然,有人到现在为止没有碰到过 ...