返回顶部
首页 > 资讯 > 前端开发 > VUE >Css中怎么实现一个三角形生成器
  • 719
分享到

Css中怎么实现一个三角形生成器

2024-04-02 19:04:59 719人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关CSS中怎么实现一个三角形生成器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在线css三角形生成器预览由预览动画我们可以看到通过在线工

这期内容当中小编将会给大家带来有关CSS中怎么实现一个三角形生成器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在线css三角形生成器预览

Css中怎么实现一个三角形生成器

由预览动画我们可以看到通过在线工具我们可以轻松配置各种想要的三角形, 并且能实时查看css代码.  开发完这个工具之后笔者再也不用担心还需要手写三角形代码了. (上班摸鱼也成了可能, 确实很多时候就是不想写代码还想要有钱拿)  在文末笔者会附上css工具的在线地址, 接下来我们来看看具体实现流程.

实现css三角形生成器

因为这个工具的需求来自于前端, 所以肯定是要对css和js编程有一定的基础, 比如css3的 transfORM, transition, 布局,  盒模型, border边界特性等.

和笔者之前写的任何一个开源工具一样, 在开发项目前一定要明确需求和目标, 这里笔者简单整理一下需求:

  • 生成任何大小的三角形(size)

  • 生成不同位置的三角形(direction)

  • 生成不同角度的三角形(rotate)

  • 生成不同背景色的三角形(color, 其实这个实不实现无所谓, 主要是笔者连这个代码都懒的写)

了解需求之后我们可以大致画一个简单的原型图来代表我们的css生成器界面, 如下:

Css中怎么实现一个三角形生成器

有了原型图, 我们可以得到如下的任务细分图:

Css中怎么实现一个三角形生成器

这里笔者要提的一点是其实以上流程对于任何项目都适用, 包括你遇到的难解的问题, 都可以一步步把思路先理清楚, 把大目标拆解为一块块的小目标,  然后逐个击破, 这样大难题也就解决了.

接下来我们先分析一下用css实现三角形的原理.

1.css画三角形的原理

其实笔者在之前的文章中也分享过3种以上的使用css实现三角形的方案, 这里笔者介绍一个通用的方法, 也就是用border来实现三角形,  我们先来看下面的图示:

Css中怎么实现一个三角形生成器

以上是展示了当box元素的width小于自身border宽度时的样子以及当box宽度为零而border-width不为零时的样子.  通过图形一分析是不是很容易联想到如果我只要一个边有颜色,其他都为透明面是不是就能变成三角形了呢?

的确也是这么实现的, 知道这个原理之后我们来继续往下实现所见即所得的“三角形”.

2.编辑器实现

编辑器实现也是前端老生长谈的话题了, 笔者在H5-Dooring项目中写过一个非常复杂的编辑器, 但是这里我们只要需要一个静态且简单的编辑器就够了.  如下图的界面:

Css中怎么实现一个三角形生成器

我们可以用任何我们擅长的框架和组件库来实现, 比如·vue3+ element plus, React + antd4.0,  笔者这里采用react方案实现, 颜色选择器采用社区比较有名的react-color.

编辑器界面的代码笔者就不一一介绍了, 相信大家都能实现, 我们这里来说一下样式数据共享逻辑:

Css中怎么实现一个三角形生成器

我们要想保证预览区域和css代码预览区域能随表单值变化而实时变化, 这里一定要将表单数据共享出来,  我们可以用react组件的state或者Vue的vuex(虽然不用vuex也可以将data提升)来共享状态.

3. 预览区域实现

预览区域实现其实有了以上的分析其实很好实现了, 只需要利用共享的form数据来绑定到三角形元素的样式上即可. 画布的背景这里笔者也是用css实现的,  如下图:

Css中怎么实现一个三角形生成器

感兴趣可以cv一下, 这代码如下:

.previewArea {   display: inline-block;   width: 360px;   height: 360px;   background: #eee;   background-image: linear-gradient(45deg,rgba(0,0,0,.2) 25%, transparent 0, transparent 75%, rgba(0,0,0,.2) 0),                   linear-gradient(45deg,rgba(0,0,0,.2) 25%, transparent 0, transparent 75%, rgba(0,0,0,.2) 0);   background-size: 30px 30px;   background-position: 0 0,15px 15px; }

还有一个比较关键的一点是如何实现切换三角形的方向的问题, 我们都知道切换方向后css的border的几个方向属性都会变, 比如三角形的方向向上时,  我们的css如下:

{   border-width: 0 60px 60px 100px;   border-color: transparent transparent #06c transparent; }

三角形的方向向下时, 我们的css如下:

{   border-width: 100px 60px 0 60px;   border-color: #06c transparent transparent transparent; }

同样左右也是类似的, 所以我们要维护4中样式, 如果后期想加一下左上, 右上, 左下, 右下, 这样代码会非常难以维护(不是if  else就是switch, 说实话switch只适合8个条件一下的判断), 所以笔者这里用对象法来解决它, 并将其封装成一个函数:

const getBorderWidthAndColor = (direction:string, w:number, h:number, color:string) => {     const borderWidthAndColor:any = {       '1': {         borderWidth: `0 ${w/2}px ${h}px ${w/2}px`,         borderColor:`transparent transparent ${color} transparent`       },       '2': {         borderWidth: `${h}px ${w/2}px 0 ${w/2}px`,         borderColor:`${color} transparent transparent transparent`       },       '3': {         borderWidth: `${h/2}px ${w}px ${h/2}px 0`,         borderColor:`transparent ${color} transparent transparent`       },       '4': {         borderWidth: `${h/2}px 0 ${h/2}px ${w}px`,         borderColor:`transparent transparent transparent ${color}`       }     }     return borderWidthAndColor[direction]   }

其实属性预览比如宽度, 高度, 背景色这些都好处理, 笔者这里就不一一介绍了. 预览如下:

Css中怎么实现一个三角形生成器

4. 代码实时展示实现

至于代码实时展示在文本框中, 这个也是很容易实现, 我们只要要把拿到的数据实时展示到文本框里即可. 由于笔者采用的css module  和react方式实现的, 所以需要对css进行额外处理, 比如将对象格式转化为css规范的格式, 所以需要加如下步骤:

JSON.stringify(triangleCss, null, 4).replaceAll(/"/g, '').replaceAll(/,/g, ';')

这样, 一个css三角形生成器就做好了, 大家还可以在此基础上继续扩展, 比如支持多边形, 六角形, ?五角形等, 也是完全没问题的.

在线体验地址: 在线css三角形生成器

上述就是小编为大家分享的Css中怎么实现一个三角形生成器了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网VUE频道。

--结束END--

本文标题: Css中怎么实现一个三角形生成器

本文链接: https://lsjlt.com/news/72607.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Css中怎么实现一个三角形生成器
    这期内容当中小编将会给大家带来有关Css中怎么实现一个三角形生成器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在线css三角形生成器预览由预览动画我们可以看到通过在线工...
    99+
    2024-04-02
  • 使用css怎么实现一个三角形
    使用css怎么实现一个三角形?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用CSS画三角形第一步首先,先来一个div,然后给这个div加一层border,并且...
    99+
    2023-06-14
  • css中怎么制作一个三角形
    本篇文章为大家展示了css中怎么制作一个三角形,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 制作方法首先我们写一个p:.triangl...
    99+
    2024-04-02
  • css怎么制作一个三角形
    这篇文章主要讲解了“css怎么制作一个三角形”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css怎么制作一个三角形”吧!在很多页面制作中会设计到突出一个三角...
    99+
    2024-04-02
  • 使用CSS怎么实现一个三角形和饼图
    使用CSS怎么实现一个三角形和饼图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 .triangle{width:0;height:0;border-width:...
    99+
    2023-06-08
  • CSS中怎么实现小三角形效果
    这篇文章将为大家详细讲解有关CSS中怎么实现小三角形效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用CSS实现小三角形效果【附实例】:建议:尽可能的手...
    99+
    2024-04-02
  • 怎么用CSS实现三角形标记
    这篇文章主要介绍怎么用CSS实现三角形标记,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   代码如下:   CssMark.html   <!DOCTYPEhtml&g...
    99+
    2024-04-02
  • 怎么在CSS中实现三角形和箭头
    本篇文章给大家分享的是有关怎么在CSS中实现三角形和箭头,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、CSS盒子模型盒子包括:margin、border、padding、c...
    99+
    2023-06-08
  • css实现三角形的代码怎么写
    这篇文章主要介绍了css实现三角形的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css实现三角形的代码怎么写文章都会有所收获,下面我们一起来看看吧。首先创建一个html文件。在html文件中添加ht...
    99+
    2023-07-04
  • 怎么用css实现直接画出三角形以及对话形式的三角形
    这篇文章主要为大家展示了“怎么用css实现直接画出三角形以及对话形式的三角形”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用css实现直接画出三角形以及对话...
    99+
    2024-04-02
  • 怎么用css实现让div的四个角成弧形
    这篇文章主要讲解了“怎么用css实现让div的四个角成弧形”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用css实现让div的四个角成弧形”吧! ...
    99+
    2024-04-02
  • 使用Java怎么实现一个帕斯卡三角形
    使用Java怎么实现一个帕斯卡三角形?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,...
    99+
    2023-05-30
    java
  • 纯CSS代码怎么实现三角形图标
    这篇文章主要介绍“纯CSS代码怎么实现三角形图标”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“纯CSS代码怎么实现三角形图标”文章能帮助大家解决问题。三角形图标<div class=...
    99+
    2023-07-04
  • css怎么实现图片变成圆角矩形
    今天小编给大家分享一下css怎么实现图片变成圆角矩形的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2022-12-16
    css
  • CSS中怎么实现三角效果
    这篇文章给大家介绍CSS中怎么实现三角效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。方法一:使用border来设置边框,元素有高度和宽度<i class="...
    99+
    2024-04-02
  • 使用javascript怎么输出一个三角形
    使用javascript怎么输出一个三角形?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。javascript输出三角形的方法:首先编写一个静态的canvas容器...
    99+
    2023-06-14
  • css中怎么实现一个圆角样式
    这篇文章给大家介绍css中怎么实现一个圆角样式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:#boxes div { border: 2px solid black; pad...
    99+
    2024-04-02
  • 怎么在python中通过函数形式实现一个生成器
    本篇文章给大家分享的是有关怎么在python中通过函数形式实现一个生成器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许...
    99+
    2023-06-14
  • css怎么实现div缺一个角
    本教程操作环境:Windows10系统、HTML5&&CSS3版、DELL G3电脑css怎么实现div缺一个角css实现缺少一角的div先建一个div,设置宽高背景色后,给需要删除一角的div增加一个伪类,将伪类设置成跟背...
    99+
    2023-05-14
    css div
  • JavaScript中怎么实现一个密码生成器
    这期内容当中小编将会给大家带来有关JavaScript中怎么实现一个密码生成器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我为大家准备了一个密码生成工具,有0-9和a-...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作