Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
使用 CSS 围绕圆形菜单排列数字_创想鸟

使用 CSS 围绕圆形菜单排列数字

使用 css 围绕圆形菜单排列数字

本文将指导你如何使用 CSS 将数字环绕在圆形菜单周围。我们将通过添加额外的 HTML结构和调整 CSS 样式来实现数字的精确定位,确保它们围绕圆形菜单均匀分布。最终实现一个美观且功能完善的圆形菜单布局。

步骤 1: HTML 结构调整

首先,我们需要对 HTML 结构进行一些调整,以便更好地控制圆形菜单和数字的布局。主要添加了两个新的 wrapper:cn-button-wrapper 和 circle-wrapper-outer。

cn-button-wrapper: 用于包裹中心按钮,并控制其在组件中的位置。circle-wrapper-outer: 用于包裹包含数字的 circle-wrapper,并提供绝对定位的上下文。

步骤 2: CSS 样式调整

接下来,我们需要调整 CSS 样式,以确保数字围绕圆形菜单正确排列。

.component {  position: relative;  margin-bottom: 3em;  height: 15em;  display: flex; /* Added */  justify-content: center; /* Added */}/* Added */.cn-button-wrapper {  width: 100%;  height: calc(34rem + 250px);  display: flex;  justify-content: center;  align-items: center;  margin-left: 15px;}.cn-button {  position: absolute;  z-index: 11;  padding: 0;  width: 8em;  height: 8em;  border: none;  border-radius: 50%;  background: none;  background-color: #004691;  color: #5f259f;  text-align: center;  font-weight: 700;  font-size: 1em;  text-transform: uppercase;  cursor: pointer;  -webkit-backface-visibility: hidden;  border: 6px solid #fff;}/* Added */.circle-wrapper-outer {  width: 100%;  position: absolute;  top: 0;  top: 100px;}.circle-wrapper {  width: 34rem; /* Added */  height: 34rem; /* Added */  border-radius: 50%;  position: relative;  transform: rotate(23deg);  margin-left: auto;  /* Added */  margin-right: auto;  /* Added */  top: 0;  /* Added */}.circle {  display: block;  position: absolute;  top: 54%;  left: 54%;  width: 50px;  height: 50px;  margin: -48px -48px -48px -53px;  background: red;  border-radius: 51%;  text-align: center;  line-height: 50px;}.deg-0 {  transform: rotate(45deg) translate(251px) rotate(-65deg);  background: #5ede29;  color: white;  font-weight: 600;}/* Added */.deg-0-new {  transform: rotate(45deg) translate(325px) rotate(-65deg);  background: #5ede29;  color: white;  font-weight: 600;}.deg-45 {  transform: rotate(90deg) translate(251px) rotate(-110deg);  background: #ffe816;  color: white;  font-weight: 600;}/* Added */.deg-45-new {  transform: rotate(90deg) translate(325px) rotate(-110deg);  background: #ffe816;  color: white;  font-weight: 600;}.deg-90 {  transform: rotate(135deg) translate(251px) rotate(-158deg);  background: #f74015;  color: white;  font-weight: 600;}/* Added */.deg-90-new {  transform: rotate(135deg) translate(325px) rotate(-158deg);  background: #f74015;  color: white;  font-weight: 600;}.deg-135 {  transform: rotate(180deg) translate(251px) rotate(-200deg);  background: #54bef8;  color: white;  font-weight: 600;}/* Added */.deg-135-new {  transform: rotate(180deg) translate(325px) rotate(-200deg);  background: #54bef8;  color: white;  font-weight: 600;}.deg-180 {  transform: rotate(225deg) translate(251px) rotate(-248deg);  background: #5ede29;  color: white;  font-weight: 600;}/* Added */.deg-180-new {  transform: rotate(225deg) translate(305px) rotate(-248deg);  background: #5ede29;  color: white;  font-weight: 600;}.deg-225 {  transform: rotate(270deg) translate(251px) rotate(-289deg);  background: #ffe816;  color: white;  font-weight: 600;}/* Added */.deg-225-new {  transform: rotate(270deg) translate(305px) rotate(-289deg);  background: #ffe816;  color: white;  font-weight: 600;}.deg-270 {  transform: rotate(315deg) translate(251px) rotate(-338deg);  background: #f74015;  color: white;  font-weight: 600;}/* Added */.deg-270-new {  transform: rotate(315deg) translate(315px) rotate(-338deg);  background: #f74015;  color: white;  font-weight: 600;}.deg-315 {  background: #54bef8;  transform: rotate(360deg) translate(251px) rotate(-380deg);  color: white;  font-weight: 600;}/* Added */.deg-315-new {  background: #54bef8;  transform: rotate(360deg) translate(325px) rotate(-380deg);  color: white;  font-weight: 600;}.btnDeactivated {  background-color: #f7f4f4 !important;  color: rgb(184 124124 38);  border: 2px solid #a57c2633 !important;}.csstransforms .cn-wrapper {  position: absolute;  z-index: 10;  top: 100px; /* Added */  width: 34em;  height: 34em;  border-radius: 50%;  font-weight: bold;  background: transparent;  -webkit-transition: all 0.3s ease 0.3s;  -moz-transition: all 0.3s ease 0.3s;  transition: all 0.3s ease 0.3s;  -webkit-transform: scale(0.1);  -ms-transform: scale(0.1);  -moz-transform: scale(0.1);  transform: scale(0.1);  pointer-events: none;  overflow: hidden;}.csstransforms .cn-wrapper:after {  content: ".";  display: block;  font-size: 2em;  width: 6.2em;  height: 6.2em;  position: absolute;  left: 50%;  margin-left: -3.1em;  top: 50%;  margin-top: -3.1em;  border-radius: 50%;  z-index: 10;  color: transparent;}.csstransforms .opened-nav {  border-radius: 50%;  -webkit-transition: all 0.3s ease;  -moz-transition: all 0.3s ease;  transition: all 0.3s ease;  -webkit-transform: scale(1);  -moz-transform: scale(1);  -ms-transform: scale(1);  transform: scale(1);  pointer-events: auto;}.cn-wrapper ul {  position: relative;  list-style: none;  margin: 0;}.csstransforms .cn-wrapper li {  position: absolute;  top: 50%;  left: 50%;  overflow: hidden;  margin-left: -12em;  width: 12em;  height: 12em;  font-size: 1.5em;  -webkit-transition: all 0.3s ease;  -moz-transition: all 0.3s ease;  transition: all 0.3s ease;  -webkit-transform: rotate(60deg) skew(60deg);  -moz-transform: rotate(60deg) skew(60deg);  -ms-transform: rotate(60deg) skew(60deg);  transform: rotate(60deg) skew(60deg);  -webkit-transform-origin: 100% 100%;  -moz-transform-origin: 100% 100%;  transform-origin: 100% 100%;  pointer-events: none;  border: 4px solid #fff;}.csstransforms .cn-wrapper li a {  position: absolute;  right: -7.25em;  bottom: -7.25em;  display: block;  width: 14.5em;  height: 14.5em;  border-radius: 50%;  -moz-box-sizing: border-box;  box-sizing: border-box;  color: #271b1b;  text-align: center;  text-decoration: none;  font-size: 1.2em;  line-height: 2;  -webkit-transform: skew(-44deg) rotate(-68deg);  -moz-transform: skew(-44deg) rotate(-68deg);  -ms-transform: skew(-44deg) rotate(-68deg);  transform: skew(-44deg) rotate(-68deg);  -webkit-backface-visibility: hidden;  backface-visibility: hidden;  pointer-events: auto;  letter-spacing: 1px;}.csstransforms .cn-wrapper li a span {  position: relative;  top: 3.8em;  display: block;  font-size: 0.7em;  font-weight: bolder;  text-transform: uppercase;  left: -22px;}.csstransforms .cn-wrapper li a:hover {  color: white;}.csstransforms .cn-wrapper li a {  top: 32px;  transition: top 1s ease 0s;}.csstransforms .cn-wrapper li a:active,.csstransforms .cn-wrapper li a:focus {  color: rgb(255, 255, 255);  font-size: 30px;  font-weight: 600;  text-shadow: 2px 2px 10px black;  top: 19px;}.csstransforms .cn-wrapper li a:focus {  position: fixed;}.csstransforms .opened-nav li {  -webkit-transition: all 0.3s ease 0.3s;  -moz-transition: all 0.3s ease 0.3s;  transition: all 0.3s ease 0.3s;}.csstransforms .opened-nav li:first-child {  transform: rotate(45deg) skew(45deg);  background: #5ede29;}.csstransforms .opened-nav li:nth-child(2) {  transform: rotate(90deg) skew(45deg);  background: #ffe816;}.csstransforms .opened-nav li:nth-child(3) {  transform: rotate(135deg) skew(45deg);  background: #f74015;}.csstransforms .opened-nav li:nth-child(4) {  transform: rotate(180deg) skew(45deg);  background: #54bef8;}.csstransforms .opened-nav li:nth-child(5) {  transform: rotate(225deg) skew(45deg);  background: #5ede29;}.csstransforms .opened-nav li:nth-child(6) {  transform: rotate(270deg) skew(45deg);  background: #ffe816;}.csstransforms .opened-nav li:nth-child(7) {  transform: rotate(315deg) skew(45deg);  background: #f74015;}.csstransforms .opened-nav li:nth-child(8) {  background: #54bef8;  transform: rotate(360deg) skew(45deg);}.no-csstransforms .cn-wrapper {  overflow: hidden;  margin: 10em auto;  padding: 0.5em;  text-align: center;}.no-csstransforms .cn-wrapper ul {  display: inline-block;}.no-csstransforms .cn-wrapper li {  float: left;  width: 5em;  height: 5em;  background-color: #fff;  text-align: center;  font-size: 1em;  line-height: 5em;}.no-csstransforms .cn-wrapper li a {  display: block;  width: 100%;  height: 100%;  color: inherit;  text-decoration: none;}.no-csstransforms .cn-wrapper li a:hover,.no-csstransforms .cn-wrapper li a:active,.no-csstransforms .cn-wrapper li a:focus {  background-color: #f8f8f8;}.no-csstransforms .cn-wrapper li.active a {  background-color: #6f325c;  color: #fff;}.no-csstransforms .cn-button {  display: none;}.learn {  transform: rotate(23deg);}.learn1 {  transform: rotate(-20deg);}.learn2 {  transform: rotate(-67deg);}.learn3 {  transform: rotate(-112deg);}.learn4 {  transform: rotate(-157deg);}.learn5 {  transform: rotate(-201deg);}.learn6 {  transform: rotate(-247deg);}.learn7 {  transform: rotate(69deg);}

关键的 CSS 修改包括:

立即学习“前端免费学习笔记(深入)”;

.component: 添加 display: flex 和 justify-content: center,用于水平居中内容。.cn-button-wrapper: 设置宽度、高度,并使用 display: flex 和 justify-content: center 及 align-items: center 来居中按钮。.circle-wrapper-outer: 设置宽度,position: absolute 和 top 值,用于定位数字圆环。.circle-wrapper: 设置宽度、高度,并使用 margin-left: auto 和 margin-right: auto 使其水平居中。*`.deg--new**: 为每个数字的定位添加新的 CSS 类,并调整translate` 值,使其围绕圆形菜单正确排列。

步骤 3: 调整数字的位置

通过调整 .deg-*-new 类中的 translate 值,可以微调数字的位置,以达到最佳的视觉效果。 例如:

.deg-0-new {  transform: rotate(45deg) translate(325px) rotate(-65deg);  background: #5ede29;  color: white;  font-weight: 600;}

根据实际情况,修改 translate(325px) 中的数值,直到数字排列在满意的位置。

总结

通过以上步骤,我们成功地将数字环绕在圆形菜单周围。 关键在于添加额外的 HTML 结构,并调整 CSS 样式,特别是 transform 属性中的 translate 值,以精确定位每个数字。 这种方法可以灵活地应用于各种圆形菜单布局,并根据需要进行定制。

logo

以上就是使用 CSS 围绕圆形菜单排列数字的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1596923.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JavaScript DOM操作:实现点击元素内部子元素的精确样式控制
上一篇 2025年12月23日 11:35:41
Python Selenium教程:定位特定文本并提取关键子串
下一篇 2025年12月23日 11:36:00

相关推荐

  • Java中字符到数字转换:解决for循环提前返回的常见陷阱

    本文探讨java中`for`循环在字符到数字转换时,因`return`语句放置不当导致程序提前终止、无法完整处理字符串的问题。我们将分析这种常见陷阱,并提供修正方案,演示如何正确利用循环填充数组,并在循环结束后统一返回最终结果,确保每个字符都能被准确映射和组合。 引言:字符到数字的映射需求 在编程实…

    2026年9月21日
    000
  • win10登录界面不显示用户头像或名称怎么办_恢复登录界面完整显示的操作方法

    登录界面缺少头像或账户名时,先检查账户名一致性,修复头像缓存,重设头像,扫描系统文件,必要时创建新管理员账户验证问题。 如果您在启动Windows 10后,登录界面仅显示密码输入框而缺少用户头像或账户名称,则可能是由于系统设置、缓存异常或账户配置问题导致。以下是恢复登录界面完整显示的详细操作方法。 …

    2026年9月21日
    100
  • 三星 A55通知提醒不及时怎么办 Samsung A55消息设置

    三星A55消息通知不及时需检查后台管理设置:1. 进入【设置】-【电池】-【后台使用限制】,开启【自动运行】,将微信等应用关闭【深度睡眠】并加入【不受限制的应用】;2. 在【通知】设置中确保允许通知、锁屏显示等权限开启,且未被暂停或静音;3. 检查网络稳定性和Samsung Account同步状态,…

    2026年9月21日
    200
  • Linux如何设置目录的执行权限

    目录的执行权限是访问其内容的“钥匙”,使用chmod命令可通过符号或八进制模式设置,常见权限为755(所有者rwx,组和其他用户rx),递归设置时推荐结合find命令分别处理文件和目录,避免误加执行权限。 在Linux中,设置目录的执行权限( x )并非意味着你可以“运行”这个目录,而是赋予了你进入…

    2026年9月21日
    000
  • 纯白颜值、双模切换:“纯白小金刚”技嘉M27UP ICE显示器登场

    纯白颜值、双模切换:“纯白小金刚”技嘉M27UP ICE显示器登场纯白颜值、双模切换:“纯白小金刚”技嘉M27UP ICE显示器登场纯白颜值、双模切换:“纯白小金刚”技嘉M27UP ICE显示器登场纯白颜值、双模切换:“纯白小金刚”技嘉M27UP ICE显示器登场

    在电竞DIY领域深耕多年的技嘉,始终致力于满足玩家对高颜值与个性化外设的追求。为助力用户打造一体化的纯白主题电竞空间,品牌全新推出了专为此场景设计的M27UP ICE显示器。这款产品定位于两千元左右价位,凭借出众的纯白外观、卓越性能与超高性价比,被玩家们亲切称为“纯白小金刚”。如果你正想入手一台兼具…

    2026年9月21日 • 用户投稿
    000
  • Java多线程API调用中Future.get()返回null的解决方案

    本文旨在解决%ignore_a_1%api调用中`future.get()`方法返回`null`的常见问题。当使用`callable`和`executorservice`并发执行api请求并尝试获取结果时,如果流读取逻辑不当,可能导致获取到的数据为空。文章将详细解释问题根源,并提供使用`string…

    2026年9月21日
    000
  • 交管12123处理非本人车辆违章怎么办_交管12123处理非本人车辆违章攻略

    可通过“交管12123”APP处理非本人名下车辆的交通违法,但需先完成备案。备案方式有两种:一是扫码备案,由车主生成二维码后驾驶人扫描并提交信息;二是短信验证备案,输入车牌号、发动机号后六位,系统向车主手机发送验证码,输入后完成备案。备案成功后,进入APP【更多】→【违法处理】,选择已备案车辆,查看…

    2026年9月21日
    000
  • 升级后如何检查兼容性

    检查兼容性是升级后确保系统稳定的关键,需先确认硬件配置与驱动支持,再验证软件运行及业务流程正常,最后通过系统日志排查潜在错误,逐步排除风险。 系统或软件升级后,检查兼容性是确保各项功能正常运行的关键步骤。直接进入实际使用前,花时间验证兼容性可以避免数据丢失、服务中断等问题。 检查硬件和驱动支持 某些…

    2026年9月21日
    000
  • .com网站安全维护_保障.com网站稳定的措施

    答案:保障.com网站稳定需加强安全防护、定期备份、实时监控和应急准备。部署防火墙、更新系统、使用HTTPS、限制端口;制定自动备份并异地存储,定期恢复测试;利用监控工具检测可用性与异常流量,优化加载速度;建立应急流程,严格权限管理,定期演练。细节执行到位才能确保长期安全稳定运行。 确保.com网站…

    2026年9月21日
    100
  • 哔哩哔哩怎么设置点赞和投币记录为私密_哔哩哔哩点赞投币隐私设置

    1、进入哔哩哔哩App个人主页,点击头像进入个人空间,通过右上角菜单进入设置;2、开启“隐藏我的点赞”功能,防止他人查看点赞记录;3、在隐私权限设置中关闭“展示投币动态”,限制投币行为的公开显示;4、手动检查并删除或隐藏历史动态中的互动记录,确保过往点赞与投币不被他人可见。 如果您希望在使用哔哩哔哩…

    2026年9月21日
    100
  • 分布式锁(Redis)解决数据竞争

    使用redis实现分布式锁来解决数据竞争可以通过setnx和expire命令。1)使用setnx尝试获取锁,并通过expire设置锁的过期时间防止死锁。2)释放锁时使用watch命令确保锁未被其他客户端获取。需要注意redis的单点故障、高并发性能瓶颈和锁的过期时间设置。 在处理高并发的应用场景中,…

    2026年9月21日
    000
  • 如何在Weka中处理向量属性:ARFF格式的限制与解决方案

    本文探讨了weka中arff格式对直接向量属性表示的限制,并提供了两种主要解决方案。对于时间序列数据,建议利用weka的内置时间序列分析功能。对于非时间序列数据,核心在于通过特征工程(如使用addexpression、multifilter等)将向量拆解并转换为可被weka有效处理的独立特征,以揭示…

    2026年9月21日
    000
  • PostgreSQL地理位置数据按距离排序的最佳实践:数据库层优化策略

    在处理大量地理位置数据并按距离排序时,将排序逻辑下推至数据库层(如postgresql)是更优的选择。这种方法能有效减少应用层的数据传输和内存消耗,充分利用数据库的计算能力,从而提升整体性能和资源利用率,而非在spring boot应用服务层进行排序。 1. 地理位置排序的需求与挑战 在现代Web应…

    2026年9月21日
    100
  • REDMI K90标准版外观预热:两款低饱和配色

    今日,redmi k90标准版正式开启预热,并首次公开完整外观设计。 官方称其为REDMI K系列历史上最为精致的标准版机型。从目前已公布的信息来看,新机将推出两种低饱和度配色:通透紫与纯净白,机身采用一体化包裹式金属中框,搭配同色系对称天线带设计,正面配备一块6.59英寸显示屏,凭借高达94%的屏…

    2026年9月21日
    100
  • Flyway配置中安全使用环境变量的实践指南

    flyway配置中直接暴露数据库连接参数存在安全隐患。本文详细阐述了如何通过命令行参数和api调用两种主要方式,将环境变量安全地集成到flyway配置流程中。通过外部化管理敏感信息,可以有效提升数据库迁移配置的安全性、灵活性和可维护性,避免将凭证硬编码到配置文件中。 在数据库迁移实践中,将敏感的数据…

    2026年9月21日
    100
  • 如何为VSCode设置最小化到系统托盘?

    VSCode不支持内置最小化到系统托盘功能,可通过第三方工具实现:Windows推荐使用RBTray或AutoHotkey脚本,Linux可借助AppIndicator扩展,macOS则依赖Dock最小化及辅助工具视觉隐藏。 VSCode 本身不提供内置的“最小化到系统托盘”功能,但可以通过一些方法…

    2026年9月21日
    000
  • Image Thresholding

    大家好,又见面了,我是你们的朋友全栈君。 Simple Thresholding The function cv.threshold is used to apply the thresholding. The first argument is the source image, which sh…

    2026年9月21日
    000
  • 怎样在iPhone情侣模式中设置情侣专属表情?个性化聊天的技巧

    怎样在iPhone情侣模式中设置情侣专属表情?个性化聊天的技巧怎样在iPhone情侣模式中设置情侣专属表情?个性化聊天的技巧怎样在iPhone情侣模式中设置情侣专属表情?个性化聊天的技巧怎样在iPhone情侣模式中设置情侣专属表情?个性化聊天的技巧

    通过Memoji、第三方贴纸应用和iOS 16+抠图功能,可为情侣打造专属表情包;结合自定义聊天背景、语音消息、共享相册等方式,既能提升聊天趣味性,又能保持沟通效率,增强情感连接。 在iPhone上设置情侣专属表情,与其说是开启一个内置的“情侣模式”,不如说是巧妙利用iOS系统和第三方应用提供的各种…

    2026年9月21日 • 用户投稿
    100
  • 如何用SumoPaint的AI裁剪图片?快速完成智能图片裁剪教程

    如何用SumoPaint的AI裁剪图片?快速完成智能图片裁剪教程如何用SumoPaint的AI裁剪图片?快速完成智能图片裁剪教程如何用SumoPaint的AI裁剪图片?快速完成智能图片裁剪教程如何用SumoPaint的AI裁剪图片?快速完成智能图片裁剪教程

    答案:SumoPaint虽无AI裁剪功能,但可通过魔棒、套索工具精确选区,结合图层蒙版与羽化、反选等操作实现智能裁剪效果,最后按需导出PNG或JPG高质量文件。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在SumoPaint中,虽然它不…

    2026年9月21日 • 用户投稿
    100
  • Java OOP如何使用内部类提高代码组织性

    内部类提升Java代码组织性与封装性,成员内部类增强封装,静态内部类分离逻辑,局部与匿名内部类简化回调,私有内部类隐藏实现细节。 内部类在Java面向对象编程中是一种有效提升代码组织性和封装性的工具。通过将一个类定义在另一个类的内部,可以更好地表达类之间的逻辑关系,控制访问权限,并减少命名冲突。合理…

    2026年9月21日
    000

发表回复

登录后才能评论
关注微信