博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纯CSS画三角原理解析
阅读量:7064 次
发布时间:2019-06-28

本文共 1885 字,大约阅读时间需要 6 分钟。

纯CSS画三角原理解析

因为之前做一个页面出现了很多三角,开始直接用图片感觉并不是很好用,看着总是怪怪的颜色还很难调整的跟背景一样,就搜了一波代码直接用上了,事后想了一下感觉不知道具体原理是什么,很奇怪为什么边框能设置成三角的样式。于是搜了一波原理整理如下

1.边框到底是什么样的?

因为很少用到很粗的边框,而且90%的情况下我们用边框都是一个颜色的。所以我发现我并不知道边框到底是什么样子的,一直一来我都以为四条边都是一条线(不要告诉我就我一个人这样认为)。

实验了一下才发现边框越来越粗的时候,很明显每条边都是一个梯形

2.如何做出三角?

因为之前看的代码都会写上width: 0; height: 0;当时不理解为什么,现在很容易就能想到,用极限的思维,当内容大小趋近与零的时候,每个边就是一个三角了。

这个时候就可以看到三角已经出现,我们要做的就是把其他边设置为透明的就可以得到我们需要的三角了。

3.还有没有更多的情况?

通过分别取消边框发现下面几种情况:

  • 取消一条边的时候,与这条边相邻的两条边的接触部分会变成直的
  • 当仅有邻边时, 两个边会变成对分的三角
  • 当保留边没有其他接触时,极限情况所有东西都会消失。

图像 022.png

图像 023.png
图像 024.png
图像 025.png
图像 026.png
图像 027.png

4.拓展

明白了这些之后,再看代码是不是感觉就很清晰了呢?然后我们就可以做出更多形状的三角。有了这些形状再加上旋转属性,基本所有的场景都能使用。

直角三角

图像 028.png

.box {    /* 内部大小 */    width: 0px;    height: 0px;    /* 边框大小 只设置三条边*/    border-top: #4285f4 solid;    border-right: transparent solid;    border-left: transparent solid;    border-width: 85px;     /* 其他设置 可有可无*/    margin: 50px;}

更小的直角三角形

利用对边的情况,做出更小的直角三角形

图像 029.png

.box {    /* 内部大小 */    width: 0px;    height: 0px;    /* 边框大小 只设置两条边*/    border-top: #4285f4 solid;    border-right: transparent solid;    border-width: 85px;     /* 其他设置 */    margin: 50px;}

等腰锐角三角形

通过更改底边的长度可以做出各种不同的三角形

图像 030.png

.box {    /* 内部大小 */    width: 0px;    height: 0px;    /* 边框大小 */    border-top: #4285f4 170px solid;    border-right: transparent 85px solid;    border-left: transparent 85px solid;         /* 其他设置 */    margin: 50px;}

对话气泡

把伪元素设置成三角,再通过定位确定位置,就可以制作出来经典的对话气泡了。

气泡

.bubbly {    position: absolute;    top: 30%;    left: 50%;    transform: translate(-50%, -50%);    background: #00ccbb;    border-radius: 8px;    width: 200px;    padding: 40px 10px;    text-align: center;    color: white;    font-size: 20px;.bubbly:after {    content: '';    position: absolute;    bottom: 0;    left: 50%;    border: 34px solid transparent;    border-top-color: #00ccbb;    border-bottom: 0;    border-left: 0;    margin: 0 0 -34px -17px;}

总结

通过对四条边的长度的设置,还可以做出各种各样的三角形,几乎所有三角的形状都可以设置出来。

另外还可以通过设置宽高中的一项为0另一个不为0,来设置出体形的形状,大家可以自由实验

转载地址:http://zdill.baihongyu.com/

你可能感兴趣的文章
用dom4j操作XML文档(收集)
查看>>
WinForm实例源代码下载
查看>>
hdu 1829 A Bug's Life(并查集)
查看>>
每日英语:Chinese Writer Wins Literature Nobel
查看>>
java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结
查看>>
Oracle Apps AutoConfig
查看>>
[leetcode]Flatten Binary Tree to Linked List
查看>>
css颜色代码大全:(网页设计师和平面设计师常用)
查看>>
boost 1.52在windows下的配置
查看>>
素材锦囊——50个高质量的 PSD 素材免费下载《上篇》
查看>>
【转】oc中消息传递机制-附:对performSelector方法的扩充
查看>>
oracle的nvl和sql server的isnull
查看>>
[转]虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)
查看>>
高血压 治疗 偏方
查看>>
HtmlAttribute HTML属性处理类
查看>>
[书目20130316]jQuery UI开发指南
查看>>
Sql Server系列:开发存储过程
查看>>
Find INTCOL#=1001 in col_usage$?
查看>>
AutoCAD 命令统计魔幻球的实现过程--(3)
查看>>
dp学习笔记1
查看>>