纯CSS画三角形

纯CSS画三角形之前遇到过的问题如果查了然后懂了,然后没有及时复盘思考,就很容易还回去,今天把许久之前的这个知识点再整理一下,一是加深自己的记忆,二也是让初学者更容易懂。首先,创建一个空的div<divclass="triangle"></div>然后,CSS处理它的边框,给它不一样的颜色,好观察.triangle{border-left:100pxs…

大家好,又见面了,我是你们的朋友全栈君。

之前遇到过的问题如果查了然后懂了,然后没有及时复盘思考,就很容易还回去,今天把许久之前的这个知识点再整理一下,一是加深自己的记忆,二也是让初学者更容易懂。

首先,创建一个空的div
<div class="triangle"></div>
然后,CSS处理它的边框,给它不一样的颜色,好观察

.triangle{ border-left:100px solid red; border-right:100px solid black; border-top:100px solid green; border-bottom:100px solid pink; ·}

结果,运行出来是这样的
这里写图片描述
div的宽占据了整个浏览器,因为我们没有给它设置宽度高度,它的值是auto,所以就占据了整个浏览器,导致我们的上下边框特别的长。
这时,我们给它设置一下宽度

.triangle{ width:0; border-left:100px solid red; border-right:100px solid black; border-top:100px solid green; border-bottom:100px solid pink; }

结果是这样子的
这里写图片描述
这个结果我非常满意,看到这里你们应该也知道三角形怎么截取了,而且是任意方向(上下左右)的三角形。
解释一下
四个方向的border其实是有重叠部分的,在四条边框都有值的情况下,左上角的正方形就由左边框和上边框分割,以此类推,而左矩形理所应当是归属左边距,以此类推。
上面的图形,因为宽高为0,所以其实只有四个正方形在被分割,所以也才会呈现四个三角形。
为了更形象的表达,我给div加了宽高

    .triangle{ width:50px; height:50px; border-left:100px solid red; border-right:100px solid black; border-top:100px solid green; border-bottom:100px solid pink; }

然后是这样子的
这里写图片描述
这样子,你们就很清楚的知道边框是怎么分割的以及它为什么会呈现这个图案,下面我手动分割@依旧不懂的同学,到这里你应该懂我说的了。
手动分割

回到原来的问题,我们应该怎么得到三角形呢?
有的同学可能会以为是直接把其他三个方向的边框去掉,那你会发现,div不见了!因为任意三个方向的边框为0,都会使4个正方形都消失,只剩下一个矩形,然而我们的宽高为0,因此,就使图形消失。再来看看这个图案。
这里写图片描述
比如我们想得到向右的三角形
那么,我先去掉右边的边框总可以吧,这样子就会去掉蓝色框框内的内容
这里写图片描述
呈现这样子
这里写图片描述
再想一步,怎么才能让绿色的块和粉红色的块去掉,有同学想,我们把它们设置成背景颜色就好啦!于是就有人设置成默认的白色。
这里写图片描述
看似我们把三角形画出来,但是假如换了一个背景色,我们就要手动去换边框的颜色,这里介绍一个属性值:transparent,表示透明。
完整的CSS如下:

    .triangle{ width:0px; border-left:100px solid red; border-top:100px solid transparent; border-bottom:100px solid transparent; }

CSS画三角形的介绍就到这里,大家也可以用span标签来话,但是会发现有一个纵向的高度,一开始我以为是line-height导致的,试了一下,发现是font-size导致的,所以只要把font-size设置为0就ok了,完整的CSS如下:

    .triangleSpan{ font-size: 0; border-left:100px solid red; border-top:100px solid transparent; border-bottom:100px solid transparent; }

假如你们不满足于四个方向的三角形,那么可以运用CSS3的属性,随便你旋转

div{ transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg); /* Firefox */ -webkit-transform:rotate(7deg); /* Safari 和 Chrome */ -o-transform:rotate(7deg); /* Opera */ }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149157.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wge安装命令

    wge安装命令第一种、传统的安装包A-从ftp://ftp.gnu.org/gnu/wget/下载到最新的wget安装包到本地B-然后通过终端tar-zxvf命令解压到我们某个目录C-然后依次执行sudo./configure和sudomake以及sudomakeinstall命令。…

    2022年6月6日
    35
  • linux系统对硬盘分区_centos怎么分区

    linux系统对硬盘分区_centos怎么分区Linux操作系统磁盘分区操作及原理,Linux系统网络环境的配置方法。

    2025年11月22日
    2
  • 如何修改用户名linux_linux修改hostname

    如何修改用户名linux_linux修改hostnameLinux下如何修改用户名(同时修改用户组名和家目录)有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和UID。本教程将会讨论这些东西。让我们先从修改用户名开始。修改用户名我们使用usermod来修改用户名。其语法为,$…在linux中如何增加修改删除暂停和冻结用户名在linux中,如何增加、修改、删除、暂停和冻结用户名在linux…

    2025年12月8日
    4
  • Laravel 队列发送邮件

    Laravel 队列发送邮件

    2021年10月26日
    38
  • 【论文精读】Parallax-Tolerant Image Stitching Based on Robust Elastic Warping

    【论文精读】Parallax-Tolerant Image Stitching Based on Robust Elastic Warping基于高鲁棒性的弹性扭曲视差容忍图像拼接算法

    2025年5月23日
    5
  • java中高级工程师面试汇总

    java中高级工程师面试汇总1接口服务数据被劫包如何防止数据恶意提交1.1:防篡改客户端提交请求之前,先对自己请求的参数全部进行拼接加密得到一个加密字符串sign 请求参数加上sign,然后再发送给服务器 服务器将参数获取后也进行相同的拼接加密得到自己的sign 比较与客户端发来的sign是否相同 不相同则是被第三方修改过的,拒绝执行关键:第三方不知道加密方式和请求参数拼接规则,而客户端与服务器是知道的,因此第三方不知道修改参数后如何生成与服务器生成相同的sign 只要请求修改了一点点加密得到的就是不同的签名

    2022年7月8日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号