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

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

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

步骤 1: HTML 结构调整

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

1
2
3
4
5
6
7
8

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 124 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 修改包括:

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

Axiom Axiom

Axiom是一个浏览器扩展,用于自动化重复任务和web抓取。

Axiom 163 查看详情 Axiom .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 值,以精确定位每个数字。 这种方法可以灵活地应用于各种圆形菜单布局,并根据需要进行定制。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月29日 00:55:37
下一篇 2025年11月29日 00:56:18

相关推荐

  • 近期值得关注的8个潜在空投新项目

    加密圈再次受到中东战争影响,又到了把钱从合约提出放到新项目的时候啦。本次推荐的新项目中多个有空投预期,尽早参与或将获得协议代币空投。 近期值得关注的8个潜在空投新项目 1、Felix 简介:Felix 是 Hyperliquid L1 上的合成美元稳定币协议(feUSD),于 4 月 8 日上线主网…

    2025年12月8日 好文分享
    000
  • 瑞波币(XRP)技术指标闪现看涨信号,分析师预期暴涨1233%

    目录 XRP币价格微升但交易量下滑XRP技术指标闪现看涨信号,分析师预期1,233%暴涨行情阿联酋建立瑞波币(XRP)合规监管框架首支XRP期货ETF于纳斯达克上市 尽管近期瑞波币(xrp)价格微幅上涨但交易量下滑,市场分析师credibull crypto却指出其技术面呈现罕见的牛市结构。当前xr…

    2025年12月8日
    000
  • 欧易交易所注册送多少 新用户奖励金额详细介绍

    欧易交易所新用户注册奖励包括体验金、任务奖励、邀请奖励及活动奖励。具体步骤为:第一步访问官网或下载APP;第二步注册账号;第三步查看活动页面;第四步了解规则;第五步完成任务;第六步领取奖励。奖励形式多样,如注册即送体验金、完成新手任务获数字货币、邀请好友得返佣及参与活动赢取大奖。 2025主流数字货…

    2025年12月8日
    000
  • 欧易交易所新用户奖励 注册立即领取多少钱

    对于欧易交易所新用户而言,注册并参与活动后,可以获得的奖励金额并非固定不变,它会根据官方的活动安排、时间节点以及用户的参与情况而有所调整。为了获取最准确、最及时的信息,建议您直接访问欧易交易所的官方网站或通过官方APP查看最新的活动公告。通常,这些公告会详细列出新用户注册奖励的具体金额、领取方式以及…

    2025年12月8日
    000
  • Solana区块链的高尔夫球详解!Web3运动游戏GolfN登陆Apple Store

    结合区块链与高尔夫球运动的应用程序GolfN正式登陆苹果App Store。 这是市场上首款基于Solana区块链,专为高尔夫球玩家所打造的Web3运动游戏平台,平台整合游戏、数字资产与传统高尔夫球社群,已吸引超过46,000名用户登记试用,在体育与科技领域掀起话题。 GolfN执行长Jared P…

    2025年12月8日
    000
  • ouyiOKX官方安卓安装包 ouyi交易所APP2025最新版

    加密货币交易日益普及,okx(原ouyi)作为全球领先的数字资产交易平台,为用户提供了便捷的交易体验。为了让您安全、快速地体验okx的各项功能,本文为您提供官方安卓app的最新版下载安装教程。使用官方app,您可以随时随地进行交易、查看行情、管理您的数字资产,享受okx提供的优质服务。 ouyiOK…

    2025年12月8日
    000
  • 币安正版交易所入口 Binance官网在线登录链接

    %ignore_a_1%,作为全球领先的加密货币交易平台,以其丰富的交易品种、强大的安全性以及便捷的用户体验赢得了全球用户的广泛认可。它不仅仅是一个简单的交易平台,更是一个集现货交易、合约交易、Launchpad、DeFi挖 矿等多种功能于一体的综合性数字资产服务生态系统。对于想要进入这个充满机遇的…

    2025年12月8日
    000
  • 币安App官网入口地址 币安官网安装详细流程

    本文提供币安官方App下载链接及详细安装流程。1、使用指定链接下载官方App,确保账户安全;2、点击链接下载安装包;3、设置手机允许安装未知来源应用,注意确认来源可靠性;4、找到安装包文件开始安装;5、阅读并同意用户协议和隐私政策;6、完成安装步骤,找到App图标;7、登录或注册账户;8、进行安全设…

    2025年12月8日
    000
  • BlockDag(BDAG)是否在其潜在的NBA交易之后爆炸了下一个加密货币?

    桌子上有球场品牌和潜在的限量版nft,blockdag可能会带来下一个加密货币爆炸 目前Cardano(ADA)的价格仍稳定在0.70美元以上的支撑区域,同时受到重大鲸鱼活动和技术形态的支持,这暗示着ADA币值存在潜在的反弹机会。最近,大额持有者已囤积超过1.2亿个ADA代币,表现出对这一加密资产即…

    2025年12月8日
    000
  • SEC的6月16日更新是否会影响XRP价格和Ripple法律地位的未来轨迹?

    预计sec将在6月16日前提交法院进展更新,本周或将对ripple的法律处境以及xrp价格走势产生深远影响。 据预测,美国证券交易委员会(SEC)将在6月16日之前就其与Ripple之间的潜在解决方案向法院提交最新进展。这一程序性动作可能是判断XRP诉讼是否趋向解决还是继续拖延的关键节点。 SEC向…

    2025年12月8日
    000
  • 阳光和风

    liepāja从昔日的小渔村līvafishing village起步,如今已发展成为拉脱维亚第三大城市,并在今年迎来建城400周年纪念。 为庆祝这一重要时刻,Latvijas Banka特别推出了一枚名为“太阳与风”的银质纪念币。艺术家Krišs Salmanis通过这枚硬币巧妙融合了城市的多元面…

    2025年12月8日
    000
  • MERIT Financial Group LLC在第一季度将其在Coinbase Global,Inc。(硬币)的股份提高了50.2%

    根据向美国证券交易委员会提交的最新文件,merit financial group llc在第一季度将其对coinbase global,inc.(nasdaq:coin)的持仓增加了50.2%。 根据提交给美国证券交易委员会的最新文件,MERIT Financial Group LLC在第一季度将…

    2025年12月8日
    000
  • 一文了解隐私是对抗区块链秃鹫的终极盾牌

    观点作者:Zano联合创始人Pavel Nikienkov的观点 中本聪无疑是位天才,但在隐私方面,他却留下了巨大的漏洞。 数字掠食者正在这片领域大肆攫取利益。原始区块链及其众多衍生技术都具备透明、不可篡改和去中心化的特性。 这些特质听起来似乎是理想金融系统的全部要素,但实际并非如此。 隐私是任何安…

    2025年12月8日
    000
  • Hedera Foundation,Eqty Lab和Accenture合作伙伴可验证和简单AI治理

    hedera foundation与eqty labs及accenture的合作关系彰显了推动公共部门技术创新的重要契机。 作为一家致力于促进Hedera区块链公有生态系统的开发与应用的非营利组织,Hedera Foundation近日携手技术公司Eqty Labs以及咨询机构Accenture,共…

    2025年12月8日
    000
  • XRP今天(6月12日)的XRP价格预测:公牛能否推动抵抗力?

    xrp价格已回升至50日简单移动平均线附近,当前交投于2.28美元附近。尽管买方显示出一定的兴趣,但尚未具备足够力量推动价格突破关键阻力位。 XRP近期的反弹面临一定阻力,价格走势整体仍处于震荡区间之内。虽然短暂上穿了50日均线,但市场持续上涨动能不足。 该加密货币自五月份低位反弹后,目前正尝试在2…

    2025年12月8日
    000
  • 以太坊逼近关键阻力,多空博弈或将加剧

    以太坊(ETH)现价2870美元,正处于一个关键的十字路口。从盘面来看,向上突破可能打开新的上涨空间,但同时也面临着技术指标超买和顶部背离的风险。 日线图分析日K线显示,以太坊在回踩黄金分割线0.5(具体数值未给出,但可推断在2753附近)后反弹向上。EMA趋势指标呈扩散态势,表明短期均线系统呈现多…

    2025年12月8日
    000
  • 币安的USDT怎么提现?TRC20和ERC20手续费差多少?

    币安 USDT 提现时,TRC20 网络手续费低于 ERC20。为确保安全高效提现,需先完成 KYC 验证、绑定正确地址,并了解 TRC20 基于波场、手续费低,ERC20 基于以太坊、手续费较高;操作步骤包括登录账户、进入资金页面、选择现货账户、点击 USDT 提现、正确选择网络类型(务必与接收地…

    2025年12月8日 好文分享
    000
  • 币安App是否支持自动交易?如何设置止盈止损策略?

    币安App目前提供部分自动交易功能,但并非完全意义上的自动化交易机器人。 用户可以通过其内置的“止盈止损”订单类型实现一定程度的自动化控制。此外,用户也可以借助第三方工具(如TradingView信号联动)与币安API配合使用来实现更复杂的自动化策略。 币安官网入口: 币安官网app下载: 如何在币…

    2025年12月8日
    000
  • 币安App的交易手续费怎么算?持有BNB能否享受折扣?

    币安App的交易手续费率标准为0.1%,但根据用户是否为挂单(Maker)或吃单(Taker)、交易量等级及是否持有BNB而有所调整。 币安binance官网入口: 币安官方app下载: 币安App的交易手续费主要由两个因素决定:用户是否为挂单(Maker)或吃单(Taker),以及用户的交易量等级…

    2025年12月8日
    000
  • 欧易余额转帐需要绑定银行卡吗?转账过程中会冻结资产吗?

    在使用欧易(OKX)进行余额转账时,是否需要绑定银行卡取决于转账的具体方式和用途。如果你是通过欧易平台内部进行加密货币之间的转账,例如从一个用户的账户向另一个用户的账户发送比特币、以太坊等数字资产,则不需要绑定银行卡。 欧易okx官网入口: 欧易okx官方app下载: 转账过程中是否会冻结资产? 在…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信