纯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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2020最火的编程语言_2020年牛会掉价吗

    2020最火的编程语言_2020年牛会掉价吗大学新生看过来。

    2022年10月5日
    0
  • ASP.NET_动态网页怎么连接数据库

    ASP.NET_动态网页怎么连接数据库近期本人在关注实体设计的过程中一直在了解“ADO.NETEntityFramework数据模型”,从中结识了.NETFramework4中的ASP.NET动态数据,ASP.NET动态数据允许您通过在运行时从数据库架构推断数据实体的外观和行为并从中派生UI行为,创建可扩展的、数据驱动的Web应用程序。         动态数据的一个重要功能是基架机制

    2025年6月14日
    0
  • navicat连接sqlserver2019失败

    navicat连接sqlserver2019失败今天连接sqlserver2019失败,但是发现MicrosoftSQLServerManagementStudio18可以正常连接当然了sqlserverip与其他数据库不一样ip,端口localhost,1433控制面板,程序修复sqlserverclient然后删除sqlserver原来的配置文件夹然后新建连接,成功连接sqlserver…

    2022年8月30日
    2
  • ubuntu设置虚拟显示器且远程连接[通俗易懂]

    ubuntu设置虚拟显示器且远程连接[通俗易懂]ps:如果需要再用显示器,需要删除或者重命名“xorg.conf”文件,后缀名改掉即可,如.conf_bak。虽然配置上面写了“1920×1080”,但是实际上最大支持“1360×768”,重启即可生效。重启计算机后,系统会默认使用虚拟显示器,即使接入了显示器,也不会输出信号到显示器上!使用teamviewer、todesk或者向日葵等远程工具实现远程连接即可。…

    2022年8月21日
    18
  • JavaScript换行符的使用[通俗易懂]

    JavaScript换行符的使用[通俗易懂]JavaScript中的三种输出方式document.write()页面上输出console.log()控制台输出alert()弹窗输出其中document.write()输出内容中换行需要使用HTML中的标签使用</br>,在其中键入\n,不会显示,但也不会有换行效果。document.write()当直接键入\n时:document.write(“君不见,黄河之水天上来奔流到海不复回。\n君不见高堂明镜悲白发,朝如青丝暮成雪。”);当把..

    2022年5月24日
    41
  • docker容器端口冲突_docker web管理工具

    docker容器端口冲突_docker web管理工具COMMAND_FAILED:’/sbin/iptables-tnat-A Docker -ptcp-d0/0–dport8111-jDNAT–to-destination172.17.0.6:8111!-idocker0’failed:iptables:Nochain/target/matchbythatname.pk

    2022年8月31日
    3

发表回复

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

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