无脑用CSS制作三角形及高级应用,看完别说你还不会!

2023-05-16

CSS的高级用法

  • 有时我们在开发中会遇到如下的需求:
    在这里插入图片描述在这里插入图片描述
  • 观察上面的图片,我们看到第一张图片手机京东下面有一个凸出盒子的三角形;第二张图片红色和白色有个斜线分割,那么我们怎么实现这种效果呢?看完这篇博客,别说你还不会!!!

CSS制作三角形

  • 首先我们平常见到的盒子都是这个样子的。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 100px;
      	height: 100px;
      	border: 1px solid red;
      	margin: 100px auto;
      }
    
  • 我们如果把盒子的边框加宽呢?如果他的边框宽度是50像素呢?就会变成下面的样子。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 100px;
      	height: 100px;
      	border: 50px solid red;
      	margin: 100px auto;
      }
    
  • 那如果我把四个边框的颜色都改成不同的颜色呢?
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 100px;
      	height: 100px;
      	border: 50px solid;
      	border-color: red blue green black;
      	margin:  100px auto;
      }
    
  • 看到这里小伙伴可能就有思路了,那我把盒子的宽和高变小一点呢?或者说直接没有宽和高呢?

在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 50px;
      	height: 50px;
      	border:  50px solid;
      	border-color:  red blue green black;
      	margin:  100px auto;
      }
    

在这里插入图片描述

  • 代码实现:

      .box1 {
      	width : 0;
      	height: 0;
      	border: 50px solid;
      	border-color: red blue green black;
      	margin:  100px auto;
      }
    
  • 看到这里,这三角形不就出来了吗,没错,把其他三个边框的颜色设置成透明色,这三角形不就正宗了吗。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width : 0;
      	height: 0;
      	border: 50px solid;
      	border-color: red transparent transparent transparent;
      	margin:  100px auto;
      }
    

总结:

  • 三角形的模板如下:

      .box {
      	width: 0;
      	height: 0;
      	border: 40px solid transparent;
      	border-top-color: red;
      }
    
  • 说明:

    1. 这种写法和上面的写法含义一样,只不过更加简洁,推荐使用
    2. 三角形的大小只需要改变边框的宽度。
    3. 三角形的方向需要修改top的值,可选的有top、bottom、left、right。
    4. 颜色修改border-top-color的值即可。
  • 所以上面的凸出盒子的三角形用定位直接定位到大盒子的适当位置就可以了,也就实现了凸出盒子三角形的效果。

CSS三角形的高级用法

  • 那么我们怎么制作这种效果呢?
    在这里插入图片描述

  • 其实它是由一个大盒子,里面装着两个小盒子(两个小盒子高度和大盒子一样),然后有一个直角三角形绝对定位到左边盒子的右边缘然后将颜色设置成和右面盒子一样的颜色就可以了。
    在这里插入图片描述
    在这里插入图片描述

  • 接下来我们分析如何写出上图中的小三角形。

  • 首先看图:
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width : 0;
      	height: 0;
      	border-width: 50px;
      	border-style: solid;
      	border-color: red blue green black;
      	margin: 100px auto;
      }
      
      下面的这种写法和上面是等价的
    
      .box1 {
      	width: 0;
      	height: 0;
      	border-width: 50px 50px 50px 50px;
      	border-style:  solid;
      	border-color:  red blue green black;
      	margin: 100px auto;
      }
    
  • 我们把上边框的宽度调高发现出现了如下图案:
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 0;
      	height: 0;
      	border-width:  150px 50px 50px 50px;
      	border-style:  solid;
      	border-color: red blue green black;
      	margin: 100px auto;
      }
    
  • 看图可知,最有可能变成我们目标三角形的是右边的三角形,于是我们把下边框的宽度调小直至为0,发现出现了我们想要的图案。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width : 0;
      	height: 0;
      	border-width:  150px 50px 0px 50px;
      	border-style:  solid;
      	border-color:  red blue green black;
      	margin:  100px auto;
      }
    
  • 于是我们把左边框的宽度也设置为0像素,三角形就更加明显了。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 0;
      	height: 0;
      	border-width: 150px 50px Opx 0px;
      	border-style:  solid;
      	border-color:  red blue green black;
      	margin:  100px auto;
      }
    
  • 这时只需要把红色三角形的颜色设置为透明色就可以了(注意,红色的三角形是上边框),效果如下。
    在这里插入图片描述

  • 代码实现:

      .box1 {
      	width: 0;
      	height: 0;
      	border-width:  150px 50px Opx opx;
      	border-style : solid;
      	border-color: transparent blue green black;
      	margin:  100px auto;
      }
    

总结:

  • 蓝色三角形的CSS代码为:

      .box1 {
      	width : 0;
      	height: 0;
      	border-width:  150px 50px 0 0;
      	border-style:  solid;
      	border-color: transparent blue transparent transparent;
      }
    
  • 说明:

    1. 其中border-width的第一个参数设置的是三角形的高度,第二个参数设置的是三角形的宽度。
    2. 颜色可以在border-color中修改成想要的颜色。
  • 因此只需要把小三角形绝对定位到左边盒子的右边,修改成适当的大小,颜色改为右边盒子的颜色就可以实现那样的需求了。

提示:
案例代码中运用了许多的复合写法,对此如果有不熟悉的伙伴可以看我的另一篇博客 - HTML,CSS中的复合写法总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无脑用CSS制作三角形及高级应用,看完别说你还不会! 的相关文章

  • C语言实现CNN的前向推理

    利用Python训练模型 xff0c 提取模型参数到C语言的头文件 xff0c C语言进行前向推理计算 目录 1 填充算子1 1多维数组实现1 2一维数组实现 2 卷积算子2 1多维数组实现2 2一维数组实现 3 池化算子3 1多维数组实现
  • 树莓派3B+安装系统

    系统镜像下载 树莓派官方镜像下载地址 xff1a https www raspberrypi org downloads xff08 如果找不到就点击See all download options xff09 https www rasp
  • ubuntu16.04安装中文输入法并设置显示中文

    参考自 xff1a https jingyan baidu com article bad08e1ef4b2f109c85121b7 html 原材料 xff1a ubuntu16 步骤 xff1a 1 在桌面的最左边选择设置 xff08
  • 用PrtSc键触发启动flameshot

    进入系统设置中的 键盘快捷键 先将系统默认的快捷键prt sc禁用 xff0c 否则可能不能再设置用这个快捷键 页面中会列出所有现有的键盘快捷键 xff0c 拉到底部会看见一个 43 按钮 点击 43 按钮添加自定义快捷键并输入以下两个字段
  • 在GitHub的README中使图片深浅主题自适应

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 在GitHub的Markdown文件中 xff0c 我们可以针对同一图片使用两份深浅主题的链接 xff0c 以保证在适应GitHu
  • P4:正则表达式(Regular Expression)学习笔记

    正则表达式学习 1 初始正则表达式1 1正则表达式练习11 2正则表达式练习21 3正则表达式练习3 2 正则表达式源码分析2 1 源码分析 matcher find 2 2源码分析 matcher group 0 2 3 整体代码2 4源
  • AutoML-sklearn and torch

    一 auto sklearn 1 1 环境依赖 额外安装swig 第三方库 linux 支持 mac xff0c windows不支持 1 2 示例代码 time left for this task 设定任务最大时间 per run ti
  • AB实验人群定向HTE模型5 - Meta Learner

    Meta Learner和之前介绍的Causal Tree直接估计模型不同 xff0c 属于间接估计模型的一种 它并不直接对treatment effect进行建模 xff0c 而是通过对response effect target 进行建
  • 【第一季】全面认识海思HI3518E方案和SDK环境搭建

    文章内容来自朱有鹏的 朱老师物联网大讲堂 的嵌入式企业级项目 海思HI3518E方案视频编解码传输深度学习 xff0c 转载请注明出处 目录 一 xff0c 视频设备开发的技术流二 xff0c HI3518E方案系统整体架构介绍三 xff0
  • A*算法入门

    A A A 算法的思路可看 xff1a 路径规划之 A A
  • js常见的的6种继承方式

    继承是面向对象的 xff0c 继承可以帮助我们更好的复用以前的代码 xff0c 缩短开发周期 xff0c 提高开发效率 xff1b 继承也常用在前端工程技术库的底层搭建上 xff0c 在整个js的学习中尤为重要 常见的继承方式有以下的六种
  • js中?.、??、??=的用法和含义

    参考链接1 参考链接2 可选链运算符 xff08 xff09 可选链运算符 xff08 xff09 类似于链式运算符 xff08 xff09 xff0c 不同之处在于在引用为null或undefined时不会报错 xff0c 而是短路返回u
  • 综述文章怎么看

    综述文章怎么看 xff1f 综述好处就是总结了这个领域的典型文章 xff0c 自己不需要花费大量的时间去找文章 一 综述文章的目的 了解这个领域的整个发展脉络 二 如何读综述文章 知道目前最好的模型是什么 xff08 这个模型解决了什么问题
  • linus常用命令

    一 linux基础学习大纲 1 linux常用命令 命令参数使用 2 文件种类 文件权限设定 xff0c 权限掩码umask 3 linux系统下根目录 34 34 存放着什么文件 xff1f 4 环境变量使用 xff0c 重点学习 xff
  • 不能将类型“{ Change: (e: any) => void; }

    ts 子组件调用父组件发生报错 报错如图 原因 子组件传入的props参数类型不一致 span class token comment 原代码 span span class token keyword export span span c
  • Golang退出协程的几个错误方法

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 文章目录 对象方法协程的错误退出协程中的协程的错误退出多个协程的错误退出一个通道控制多个协程的正确退出方法 正确退出协程方法容易搜
  • QT学习笔记--信号与信号的连接,信号的断开

    信号与信号的连接 场景 xff1a 下课 xff0c 老师饿了 xff0c 学生请老师吃饭 若已经将老师和学生之间进行连接 xff0c 此时需要创建按钮 xff0c 点击后发出下课信号 此时 xff0c 可以将按钮与老师之间进行连接 eg
  • 搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写

    文章目录 一 keil环境搭建二 stm32程序1 新建工程2 配置环境3 编译调试 三 分析HEX文件四 总结五 参考链接 一 keil环境搭建 百度网盘分享下载 mdk531安装 链接 xff1a https pan baidu com
  • VNC Viewer方式的远程连接树莓派

    文章目录 一 工具下载二 SD卡格式化三 烧录镜像四 配置网络五 putty远程连接六 VNC Viewer远程界面显示七 参考链接 一 工具下载 树莓派镜像 https www raspberrypi org downloads rasp
  • LaTeX001

    LaTeX排版入门须知 声明 一般而言 xff0c TeX和LaTeX有着区别 xff0c 但是考虑到热门程度 xff0c 于是使用LaTeX代指相关的所有排版系统 xff0c 只有在一些情况下会采取不同的称呼 所以这并不是严谨性不够的做法

随机推荐

  • LaTeX002

    LaTeX文件基本设定 文件目录组成 排版文件文件名为 34 xxx tex 34 xff0c 但是这个是一个没有提前设定格式的文件 xff1b 提前设定好的格式文件是 34 xxx cls 34 xff0c 由此可以自己预先编辑一个学校的
  • LaTeX003

    LaTeX特殊字符 之前说没有服务器 xff0c 所以一般来说静态网页我是使用github托管并运行 xff0c 效果还行 xff0c 不算太a慢 但是由于安全的问题有时候脚本没有运行 xff0c 这个时候需要允许执行不安全的内容 火狐需要
  • 双拼输入法-自然码和微软双拼

    双拼输入法 双拼输入法是在拼音输入法的基础上进行了二次编码 xff0c 将全拼拆解为两部分将这两部分进行合并分配至26键上 本文介绍自然码和微软双拼 本人力荐自然码 自然码双拼输入法 码表 键全拼码键全拼码键全拼码键全拼码Qq iuFf e
  • 蓝桥杯嵌入式——考试模板构建(1)

    1 创建资源文件夹和提交文件夹 2 使用STM32CubeMX创建 资源文件工程 xff08 1 xff09 创建工程 xff08 2 xff09 找到STM32G431RBT 3 配置RCC 主时钟为外部高速时钟 xff08 4 xff0
  • virtualbox 主机ping不通虚拟机解决办法

    场景描述 xff1a virtualbox虚拟机可以ping通主机和外网 xff0c 但是主机一直无法ping通虚拟机ip xff08 10 0 2 15 xff09 xff1b 虚拟机的网络设置为nat xff08 自己添加的nat网络
  • 注册Keil软件时出现“ TOOLS.INI: TOOLCHAIN NOT INSTALLED ”的解决办法

    当我们在注册keil软件时 xff0c 出现了 TOOLS INI TOOLCHAIN NOT INSTALLED 时 xff0c 首先看一下keil软件能不能正常使用 xff0c 如果keil软件能够正常使用证明安装是正确的 xff0c
  • go redis incr的使用

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 文章目录 返回值代码示例 可用版本 xff1a gt 61 1 0 0 时间复杂度 xff1a O 1 为键 key 储存的数字值
  • MapReduce过程详解(非常全)

    MapReduce算法执行过程 核心思想 xff1a 分而治之 xff08 1 xff09 MapReduce框架使用InputFormat模块做Map前的预处理 xff0c 比如验证输入的格式是否符合输入定义 xff1b 然后 xff0c
  • HDFS读写流程(全面深入理解)

    1 HDFS写流程 xff08 1 xff09 客户端通过对FileSystem create 对象创建建文件 xff0c DistributedFileSystem会创建输出流FSDataOutputStream xff08 2 xff0
  • SHELL命令 -- 将命令的结果赋给变量

    如果想将文件夹中所有文件的名字赋给一个变量 xff0c 在shell命令中该如何实现呢 xff1f 1 使用反引号 var 61 96 ls 96 echo var 2 使用 var 61 ls echo var
  • 树莓派3B+无屏登录系统

    树莓派3B 43 无屏入门 本文章用于记录自己学习树莓派的心得和流程 xff0c 同时希望给他人一个参考 无屏入门 xff0c 并不是真正的无屏 xff0c 你需要笔记本电脑 我购买的是树莓派3b 43 无卡基础套餐 xff0c 5V2 5
  • Verilog | 4位数值比较器

    牛客上的一道题 xff0c 记录一下 这道题有两种思路 xff1a 第一种是按位比较 xff0c 列举出所有情况 xff1a module comparator 4 input 3 0 A input 3 0 B output wire Y
  • nvm切换node版本 npm版本未更新解决办法

    考虑受到全局npm影响 nvm uninstall 版本号 卸载版本号 nvm install 版本号 下载需要的版本号 删除c盘 用户配置文件下的 npmrc npmrc为全局配置文件 删除掉 恢复默认配置 nvm默认会切换npm npm
  • Ubuntu18.04——使用Remmina基于VNC协议远程连接Ubuntu客户端

    使用前需要确保被连接端已启动VNC iewer程序 安装Remmina sudo apt install remmina 使用Remmina基于VNC协议远程连接 启动remmina remmina 点击左上角的 43 修改协议为VNC 填
  • Ubuntu18.04——两台Ubuntu可以ping通但无法SSH

    问题描述 两台Ubuntu机器可以相互Ping通 xff0c 但是ssh失败 解决方法 SSH分客户端openssh client和openssh server 如果你只是想登陆别的机器的SSH只需要安装openssh client xff
  • 切换cuda版本的两种方式

    看正文之前 xff0c 最好先搞懂什么是环境变量 xff0c PATH环境变量的作用 xff0c 如何定义或修改环境变量 xff0c 软链接的概念 xff0c 什么是 bashrc文件 xff0c 如何创建软链接 xff0c 如何删除软链接
  • MySQL基础练习题

    1 xff09 查询出 goods 表中所有字段 2 xff09 查询出 goods 表中生产日期在一年前的商品 3 xff09 查询出 goods 表中商品名称中带 洗 字的商品 4 xff09 查询出 goods 表中商品编号为 2 4
  • 函数(new)

    函数 xff08 new 一 字符串处理函数 1 字符串的输入 xff08 1 xff09 scanf span class token macro property span class token directive keyword i
  • HTML,CSS中的复合写法总结

    CSS中的常用复合写法 表格常用属性字体属性的复合写法背景图片的复合写法边框的复合写法内边距 xff08 padding xff09 的复合写法外边距 xff08 margin xff09 的复合写法 一 表格常用属性 xff1a 属性含义
  • 无脑用CSS制作三角形及高级应用,看完别说你还不会!

    CSS的高级用法 有时我们在开发中会遇到如下的需求 xff1a 观察上面的图片 xff0c 我们看到第一张图片手机京东下面有一个凸出盒子的三角形 xff1b 第二张图片红色和白色有个斜线分割 xff0c 那么我们怎么实现这种效果呢 xff1