当前位置: 首页 > news >正文

CSS 实现六边形柱状图

前言

👏CSS 实现六边形柱状图 速速来Get吧~

🥇文末分享源代码。记得点赞+关注+收藏!

1.实现效果

在这里插入图片描述

2.实现步骤

  • 定义全局css变量,柱状宽度为–w,最大高度为–h,柱形整体为渐变色,定义上部分颜色为 --bar-shape,下部分颜色为 --bar-bg
:root{/* 柱形宽度-全局 */--w: 45px;/* 柱形高度最大值 */--h: 300px;/* 柱形上部分颜色 */--bar-shape: rgba(186, 210, 226, 0.9);/* 柱形下部分颜色 */--bar-bg: #f083b6;
}
  • 根据定义的变量,绘制一个矩形

在这里插入图片描述

<div class="bar"><span></span>
</div>
.bar{position: relative;width: var(--w);height: var(--height);background: linear-gradient(to top, var(--bar-bg), var(--bar-shape));
}
  • 定义柱状顶部和底部的六边形颜色,顶部颜色为 --bar-top,底部颜色为 --bar-bg
:root{/* 柱形顶部六边形颜色 */--bar-top: rgb(186, 210, 226);/* 柱形下部分颜色+柱形底部六边形 */--bar-bg: #f083b6;
}
  • 用clip-path裁剪出六边形,定义clip-path裁剪变量–path
:root{/* clip-path裁剪六边形 */--path: polygon(75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%, 25% 0);
}

clip-path:clip-path CSS 属性使用裁剪方式创建元素的可显示区域。区域内的部分显示,区域外的隐藏。

在这里插入图片描述

  • 这里我们使用clip-path在线网站,在线拖拽出我们想要的形状

在这里插入图片描述

  • 为该矩形添加前后伪元素,宽度为–w,高度为宽度的40%,用clip-path实现六边形
.bar::before,
.bar::after {content: "";position: absolute;width: var(--w);height: calc(var(--w) / 2.5);clip-path: var(--path);left: 0;
}
  • 设置前伪元素的背景色,top为0,层级为2,置于最上方

在这里插入图片描述

.bar::before {background: var(--bar-top);top: 0;/* 层级置于最上层 */z-index: 2;transform: translateY(-50%);}
  • 设置后伪元素的背景色,bottom为0,层级为-1,置于最下方

在这里插入图片描述

.bar::after {background: var(--bar-bg);bottom: 0;/* 层级置于最下层 */z-index: -1;transform: translateY(50%);
}
  • 用box-shadow给该矩形添加阴影区域,宽度为–w的二分之一,高度设置为101%(保留1%的高度余出),设置absolute定位,bottom设置为底边六边形高度的二分之一,水平居中

在这里插入图片描述

<div class="bar">+ <span></span>
</div>

box-shadow:CSS box-shadow 属性用于在元素的框架上添加阴影效果。你可以在同一个元素上设置多个阴影效果,并用逗号将他们分隔开。该属性可设置的值包括阴影的 X 轴偏移量、Y 轴偏移量、模糊半径、扩散半径和颜色。

在这里插入图片描述

  • 添加box-shadow

在这里插入图片描述

.bar span {position: absolute;--d: calc(var(--w) / 2);--b: calc(var(--w) / -2.5 / 2);width: var(--d);height: 101%;left: calc(50% - var(--d) / 2);bottom: var(--b);box-shadow: 0px -5px 5px var(--bar-line);
}
  • 设置hover事件,并添加过渡效果

在这里插入图片描述

.bar:hover {height: 100%;
}.bar {+ transition: all 1s;
}
  • 定义多个元素,为其设置不同的高度,宽度(颜色小伙伴们 可以自行调试哈),就完成啦

在这里插入图片描述

3.实现代码

<style>:root {/* 柱形上部分颜色 */--bar-shape: rgba(186, 210, 226, 0.9);/* 柱形顶部六边形颜色 */--bar-top: rgb(186, 210, 226);/* 柱形下部分颜色+柱形底部六边形 */--bar-bg: #f083b6;/* 柱形线条颜色 */--bar-line: rgba(0, 0, 0, 0.2);/* clip-path裁剪六边形 */--path: polygon(75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%, 25% 0);/* 柱形宽度-全局 */--w: 45px;/* 柱形高度最大值 */--h: 300px;}section {/* flex布局 */display: flex;align-items: flex-end;height: var(--h);}.bar {position: relative;width: var(--w);height: var(--height);margin-right: 20px;background: linear-gradient(to top, var(--bar-bg), var(--bar-shape));transition: all 1s;}.bar:hover {height: 100%;}.bar:last-child {margin-right: 0;}/* bar添加前后伪元素,设置为clip-path裁剪后的六边形 */.bar::before,.bar::after {content: "";position: absolute;width: var(--w);height: calc(var(--w) / 2.5);clip-path: var(--path);left: 0;}.bar::before {background: var(--bar-top);top: 0;/* 层级置于最上层 */z-index: 2;transform: translateY(-50%);}.bar::after {background: var(--bar-bg);bottom: 0;/* 层级置于最下层 */z-index: -1;transform: translateY(50%);}.bar span {position: absolute;--d: calc(var(--w) / 2);--b: calc(var(--w) / -2.5 / 2);width: var(--d);height: 101%;left: calc(50% - var(--d) / 2);bottom: var(--b);box-shadow: 0px -5px 5px var(--bar-line);}
</style>
<body><section><div class="bar" style="--height: 5%; --w: 25px"><span></span></div><div class="bar" style="--height: 60%"><span></span></div><div class="bar" style="--height: 30%; --w: 50px"><span></span></div><div class="bar" style="--height: 60%; --w: 60px"><span></span></div><div class="bar" style="--height: 30%; --w: 30px"><span></span></div><div class="bar" style="--height: 80%; --w: 35px"><span></span></div><div class="bar" style="--height: 10%; --w: 45px"><span></span></div></section>
</body>

4.写在最后🍒

看完本文如果觉得对你有一丢丢帮助,记得点赞+关注+收藏鸭 🍕
更多相关内容,关注🍥苏苏的bug,🍡苏苏的github,🍪苏苏的码云~

相关文章:

CSS 实现六边形柱状图

前言 &#x1f44f;CSS 实现六边形柱状图 速速来Get吧~ &#x1f947;文末分享源代码。记得点赞关注收藏&#xff01; 1.实现效果 2.实现步骤 定义全局css变量&#xff0c;柱状宽度为–w&#xff0c;最大高度为–h&#xff0c;柱形整体为渐变色&#xff0c;定义上部分颜色为…...

什么是推挽输出,开漏输出?

这篇文章是看B站“工科男孙老师”这个视频的笔记推挽 开漏 高阻 这都是谁想出来的词&#xff1f;&#xff1f; 我觉得讲的很好&#xff0c;做一下笔记 1.什么是IO输出三态 一共有&#xff1a;高电平, 低电平&#xff0c;浮空/高阻态 三种IO态 2.推挽输出 推挽输出能够表示高、…...

【图像分割】Unet系列深度讲解(FCN、UNET、UNET++)

【图像分割】Unet 深度讲解 文章目录【图像分割】Unet 深度讲解1. 介绍1.1 背景介绍&#xff1a;1.2 医学图像特点1.3 图像分割是什么2. Unet发展历程&#xff08;FCN、Unet、Unet&#xff09;2.1 全卷积网络-FCN2.1.1 FCN介绍&#xff1a;2.1.2 FCN框架2.1.3 反卷积层2.1.4 输…...

list底层的简单实现(万字长文详解!)

list底层的简单实现 文章目录list底层的简单实现list_node的实现&#xff01;list_node的构造函数list的迭代器&#xff01;——重点&#xff01;list迭代器的成员变量迭代器的构造函数* 重载前置 重载后置 重载前置-- 重载后置-- 重载! 重载 重载-- 重载list的const迭代器——…...

学习Linux只要学会这个命令就够了!

大家好&#xff0c;我是良许。 这段时间又是搬家&#xff0c;又是找新办公室&#xff0c;现在终于安顿下来了&#xff0c;有时间给大家分享干货了。 今天给大家介绍一个 Linux 超级实用命令&#xff0c;有了这个命令&#xff0c;你就可以愉快使用 Linux 上几乎所有常用命令了…...

javascript基础

javascript基础 1概述&#xff1a; JavaScript是目前web开发中不可缺少的脚本语言&#xff0c;js不需要编译即可运行&#xff0c;运行在客户端&#xff0c;需要通过浏览器来解析执行JavaScript代码。 诞生于1995年&#xff0c;当时的主要目的是验证表单的数据是否合法。 JavaS…...

【游戏逆向】某游戏技能库分析

技能库的分析大多是从技能名字入手的&#xff0c;然后再通过传入职业或者ID等信息去到库中去取当前角色的可用技能。下面我们来对《**明月刀》中的技能库进行分析。 首先通过CE对技能名字进行搜索&#xff0c;得到较少的结果&#xff0c;分别对结果进行修改&#xff0c;并再次…...

Pytorch深度学习常用预训练网络模型的下载地址

Resnet:model_urls {‘resnet18’: ‘https://download.pytorch.org/models/resnet18-5c106cde.pth‘,‘resnet34’: ‘https://download.pytorch.org/models/resnet34-333f7ec4.pth‘,‘resnet50’: ‘https://download.pytorch.org/models/resnet50-19c8e357.pth‘,‘resnet…...

毕业设计 基于51单片机自动智能浇花系统设计

基于51单片机自动智能浇花系统设计1、毕业设计选题原则说明&#xff08;重点&#xff09;2、项目资料2.1 系统框架2.2 系统功能3、部分电路设计3.1 STC89C52单片机最小系统电路设计3.2 按键电路设计3.3 水泵控制电路设计4、部分代码展示4.1 数码管位选程序4.2 ad0832数据读取程…...

熟悉常用的 Linux 操作和 Hadoop 操作

文章目录前言一、常用命令集合1、cd命令&#xff1a;切换目录1、切换到目录/usr/local2、切换回上级目录3、切换到当前登录Linux系统的用户的自己的文件夹2、ls命令&#xff1a;查看文件与目录3、mkdir命令&#xff1a;创建目录4、rmdir命令&#xff1a;删除空的目录5、cp 命令…...

Vue2项目总结-电商后台管理系统

Vue2项目总结-电商后台管理系统 去年做的项目&#xff0c;拖了很久&#xff0c;总算是打起精力去做这个项目的总结&#xff0c;并对Vue2的相关知识进行回顾与复习 各个功能模块如果有过多重复冗杂的部分&#xff0c;将会抽取部分值得记录复习的地方进行记录 一&#xff1a;项目…...

【二】一起算法---队列:STL queue、手写循环队列、双端队列和单调队列、优先队列

纸上得来终觉浅&#xff0c;绝知此事要躬行。大家好&#xff01;我是霜淮子&#xff0c;欢迎订阅我的专栏《算法系列》。 学习经典算法和经典代码&#xff0c;建立算法思维&#xff1b;大量编码让代码成为我们大脑的一部分。 ⭐️已更系列 1、基础数据结构 1.1、链表➡传送门 1…...

<Linux>环境变量

环境变量 文章目录环境变量一、基本概念二、常见环境变量三、查看环境变量的方法四、测试PATH五、测试HOME六、测试SHELL七、环境变量相关的命令八、环境变量的组织方式九、命令行参数十、通过代码获得环境变量十一、通过系统调用获取环境变量十二、环境变量通常是具有全局属性…...

【MySQL】下载(超详细教程)

目录 First-下载 Second-安装 Third-检测是否安装 Last-总结 First-下载 首先 &#xff0c;我们一步一步跟着我的操作来&#xff0c;不能越步骤&#xff0c;很容易报错&#xff0c;就芭比Q了。 第一步直接进入这个网址&#xff1a;MySQL &#xff1a;&#xff1a; MySQL 社…...

再探pytorch的Dataset和DataLoader

本文从分类、检测、分割三大任务的角度来剖析pytorch得dataset和dataloader源码&#xff0c;可以让初学者深刻理解每个参数的由来和使用&#xff0c;并轻松自定义dataset。思考&#xff1a;在探究Dataset和DataLoader之前&#xff0c;需要明白一个事情&#xff0c;就是当我们不…...

【2023.3.18 美团校招】

文章目录1. 小美剪彩带2. 最多修改两个字符&#xff0c;生成字典序最小的回文串1. 小美剪彩带 题意&#xff1a;找出区间内不超过k种数字子数组的最大长度 使用双指针的方式&#xff0c;用哈希表来统计每个数出现次数。在双指针移动的过程中&#xff0c;动态的维护区间内不同数…...

程序员必须知道的HTML常用代码有哪些?

HTML 即超文本标记语言&#xff0c;是目前应用最为广泛的语言之一&#xff0c;是组成一个网页的主要语言。在现今这个 HTML5 华丽丽地占领了整个互联网的时候&#xff0c;如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的&#xff0c;程序猿们需要掌握一些必须知道的 HTM…...

多目标家庭行为检测--人脸识别模块构建

文章目录前言原理项目结构编码配置主控函数人脸采集模块特征提取识别测试前言 2023-3-18 天小雨&#xff0c;午觉舒适程度5颗星。任务完成指数2颗星。续接上文&#xff1a;《MidiaPipe stgcn&#xff08;时空图卷积网络&#xff09;实现人体姿态判断&#xff08;单目标&#x…...

RocketMQ重复消费问题的原因

文章目录 概览消息发送异常时重复发送消费消息抛出异常消费者提交offset失败服务端持久化offset失败主从同步offset失败重平衡清理长时间消费的消息总结概览 消息发送异常时重复发送 首先,我们来瞅瞅RocketMQ发送消息和消费消息的基本原理。 如图,简单说一下上图中的概念: …...

proxy详细介绍与使用

proxy详细介绍与使用 proxy 对象用于创建一个对象的代理&#xff0c;是在目标对象之前架设一个拦截&#xff0c;外界对该对象的访问&#xff0c;都必须先通过这个拦截。通过这种机制&#xff0c;就可以对外界的访问进行过滤和改写。 ES6 原生提供 Proxy 构造函数&#xff0c;…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...