CSS -- 使用纯CSS绘制三角形及常见案例汇总

news2024/10/6 16:30:00

文章目录

  • 1. 绘制原理
  • 2. 绘制最简单的三角形
  • 3. 绘制对话框
  • 4. 绘制两条直角边不等长的三角形

1. 绘制原理

网页中常见一些三角形,使用 CSS 直接画出来就可以,不必做成图片或者字体图标

给每个边框不同的颜色可以看到,每个边框其实都是一个小三角形,那么我们就可以只设置一个或两个边框从而让一个盒子呈现出来三角形的样式

image-20221212212117239

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>CSS 三角制作</title>
        <style>
            .box1 {
                width: 0;
                height: 0;
                /* border: 10px solid pink; */
                border-top: 50px solid pink;
                border-right: 50px solid red;
                border-bottom: 50px solid blue;
                border-left: 50px solid green;
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
</html>

2. 绘制最简单的三角形

我们只需要将边框的颜色设置为透明,然后给其中一个边颜色即可有下面效果

image-20221212212411301

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>CSS 三角制作</title>
        <style>
            .box2 {
                width: 0;
                height: 0;
                border: 50px solid transparent;
                border-left-color: pink;
                margin: 100px auto;
            }
        </style>
    </head>
    <body>
        <div class="box2"></div>
    </body>
</html>

3. 绘制对话框

类似对话框的效果:

image-20221212212825375

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>京东三角形</title>
        <style>
            .box {
                position: relative;
                width: 300px;
                height: 100px;
                margin: 200px auto;
                background-color: skyblue;
                padding: 10px;
                color: #fff;
            }

            .box span {
                position: absolute;

                width: 0px;
                height: 0px;
                right: -20px;
                top: 20px;
                border: 10px solid transparent;
                border-left-color: skyblue;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <span></span>
            <p>这是段对话,我是说话者,看看效果怎么样,应该还不错</p>
        </div>
    </body>
</html>

4. 绘制两条直角边不等长的三角形

实现如下效果

image-20221212221230362

实现思路,我们只需要拼出右侧的图形,然后将其设置绝对定位放到左边的红色矩形中就可以

image-20221212221248219

我们依然可以通过三角形来实现

.box {
    width: 0px;
    height: 0px;
    border-top: 50px solid pink;
    border-right: 50px solid red;
    border-bottom: 50px solid blue;
    border-left: 50px solid green;
}

首先对于这个代码进行修改,当四个边框一样大的时候,出来的图形就很好理解

image-20221212221739637

当我们将border-top设置为100px的时候,就会变成下面这种情况,可以看到上侧被拉长了,我们需要的图形就是右侧三角形的上半部分,因此我们可以把下边框的宽度设置为0

image-20221212221836821

我们就得到了需要的三角形,将其他两个边框隐藏后就可以得到最后需要的图形

image-20221212221926431

最后生成的图形如下,css代码:

.box {
    width: 0px;
    height: 0px;
    border-top: 100px solid transparent;
    border-right: 50px solid red;
    border-bottom: 0px solid transparent;
    border-left: 0px solid transparent;
}

对其进行简化可以为:

.box {
    width: 0px;
    height: 0px;
    /*顺序仍然是上右下左*/
    border-color: transparent red transparent transparent;
    border-width: 100px 50px 0px 0px;
    border-style: solid;
}

image-20221212221959570

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试(缺陷管理)

目录 1.缺陷管理理论 1.1.定义 1.2缺陷的名称 1.3.产生缺陷的原因 1.4.缺陷管理流程 1.5.缺陷管理生命周期与状态 2.如何提交缺陷 2.1.提交的Bug的目的 2.2.提交Bug的注意事项 2.3.提交Bug报告应遵循的原则 2.4.Bug报告需包含哪些内容 1.缺陷管理理论 1.1.定义 软件…

rust编程-rust所有权理解(chapter 4.3 Slice切片类型)

目录 3. 切片&#xff08;Slice&#xff09;类型 3.1 String slice(字符串切片) 3.2 其它切片 3. 切片&#xff08;Slice&#xff09;类型 切片可以用来获取一个集合中连续的元素序列&#xff0c;且切片是一种引用类型&#xff0c;因此不具有所有权。 如下是一个小的编程示…

day17_面向对象的三大特征之一(多态)

概述 多态是继封装、继承之后&#xff0c;面向对象的第三大特性。 生活中&#xff0c;比如求面积的功能&#xff0c;圆、矩形、三角形实现起来是不一样的。跑的动作&#xff0c;小猫、小狗和大象&#xff0c;跑起来是不一样的。再比如飞的动作&#xff0c;昆虫、鸟类和飞机&a…

【数字IC设计】Design Compiler入门

本博客参考自文章链接 本文以全加器为例&#xff0c;演示DC综合的流程。设计文件如下&#xff1a; module full_adder( input clk, input rstn, input [31:0] a_in, input [31:0] b_in, input c_in, output reg [31:0] sum_out, output reg c_out ); wire c_out_w; wire [31:0…

[vue学习笔记]数组+事件+v-model的使用

1.关于数组的使用以及常见的函数 &#xff08;1&#xff09;在队尾操作函数&#xff1a;push&#xff08;&#xff09;&#xff1a;追加&#xff0c;pop&#xff08;&#xff09;&#xff1a;删除 arr.push(9,8,7,6); 这种批量追加的方式也是被允许的 &#xff08;2&#xf…

Gem5模拟器,关于Adding parameters to SimObjects and more events的一些问题记录(六)

目录 &#xff08;1&#xff09;为什么Gem是Python和C混合使用编程&#xff1f; &#xff08;2&#xff09;关于析构函数 创建类的时候一般都需要写上析构函数吗&#xff1f; &#xff08;3&#xff09;关于HelloObject和GoodbyeObject的先后后创建关系 &#xff08;1&…

C# 类 字段 方法

一 现实中的实物抽象为类 类(class)最基本的要素是 ① 字段(field):变量&#xff1b; ② 方法(method):函数&#xff1b; class Person {public string name;public int age;public void SayHello(){Console.WriteLine("Hello!My name is"name);}public string Ge…

(Python)第2章-12 输出三角形面积和周长 (15 分)

Python解决输入三条边输出面积与周长1.问题2.解决思路代码在孤单的日子里&#xff0c;你单枪匹马奋斗的样子酷毙了。江客&#xff1a;时荒![在这里插入图片描述](https://img-blog.csdnimg.cn/85fc4495dcfc4578a8612a432d8045cd.png#pic_center)1.问题 本题要求编写程序&#…

Arduino Uno零基础入门学习笔记——变量与函数

文章目录一、创建变量二、函数三、delay的例子总结一、创建变量 int currentTemperature;整数型变量 变量名字 分号 使用驼峰命名法对进行命名 有些程序员喜欢全部小写&#xff0c;有些程序员喜欢用下划线&#xff0c;所以如果要写一个my name的变量&#xff0c;他们常用的写…

vue3中的propemit

状态是什么&#xff1a; 页面中要显示的东西&#xff0c;放在一个变量中&#xff0c;每次更改完值&#xff0c;就会被拦截&#xff0c;同时再重新渲染页面&#xff1b; 状态的对立面就是属性&#xff1b; 可以没有状态&#xff0c;那只能用父组件传过来的属性来自己用&#…

Saga 模式

Saga 模式目录概述需求&#xff1a;设计思路实现思路分析1.2.适用场景&#xff1a;3.缺点&#xff1a;4.Saga的实现&#xff1a;参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,ma…

mysql数据恢复,mysql数据备份,详细聊聊mysql数据备份与恢复

文章目录写在前面数据备份与恢复1、全量备份模拟全量备份与恢复全量备份的缺点2、增量备份模拟增量备份与恢复增量备份注意事项总结写在前面 作为互联网开发人员来说&#xff0c;数据安全性一直排在第一位的重中之重。 mysql作为关系型数据库的一个巨头&#xff0c;其备份与恢…

从GNU/Linux看国产操作系统的安全可控性

作者&#xff1a;IT圈黎俊杰 在信创的春风下&#xff0c;做为IT基础软件三驾马车之一的操作系统&#xff0c;自然是国产化替代的重点&#xff0c;再加上一直以来被大家当成”免费RedHat Enterprise Linux“的CentOS因被redhat收购&#xff0c;并宣布于2021年12月31日起在停止维…

SpringBoot+SpringCloud微服务搭建全过程(一)

一&#xff1a;什么是SpringBoot 1. SpringBoot不是一个全新的框架,而是对Spring框架的一个封装。所以&#xff0c;以前Spring可以做的事情&#xff0c;现在用SpringBoot都可以做。 2. SpringBoot整合了很多优秀的框架&#xff0c;用来简化Spring应用搭建和开发过程&#xff…

java项目_第171期ssm房屋租赁系统_计算机毕业设计

java项目_第171期ssm房屋租赁系统_计算机毕业设计 【源码请到下载专栏下载】 今天分享的项目是《ssm房屋租赁系统》 该项目分为2个角色&#xff0c;管理员和用户。 用户可以浏览前台,查看房屋租赁情况&#xff0c;并且进行租赁。 还可以登录到后台&#xff0c;进行租赁订单管理…

【20221212】【每日一题】一和零

给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。 思路&#xff1a;背包有两个维度&#xff1a;m、n。不…

【工作项目总结】交易系统

写工作项目总结的目的就是,明明自己工作中负责了一些模块也写了很多代码,解决了不少坑。但是面试的时候,总是记不起来在自己过往做的项目中,该项目的具体亮点难点分别是什么,有哪些令人印象深刻的问题,以及是如何解决它的。那么记录问题与解决思维就是我创作这个工作复盘…

C#连接蓝牙设备

看过各种博主的文章&#xff0c;发现基本上都是属于误人子弟的狗屁文章&#xff0c;踩过各种坑最终实现了此功能。 1.思路 电脑蓝牙和蓝牙模块配对连接 和我们平时正常连接蓝牙设备一样&#xff0c;需要先搜索附近的蓝牙设备&#xff0c;然后根据设备名来选择要连接的蓝牙模块…

VSCODE 系列(六)使用Plantuml插件制作UML类图

文章目录前言下载和安装支持文件格式支持绘制类型导出语法申报要素UML类图关系参考例子参考前言 软件设计中&#xff0c;有好几种图需要画&#xff0c;比如流程图、类图、组件图等&#xff0c;我知道大部分人画流程图一般都会用微软的visio绘制&#xff0c;visio画图有个不好的…

[附源码]计算机毕业设计高校实验室仪器设备管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis MavenVue等等组成&#xff0c;B/S模式…