如何使用css3/javascript将圆分成12等份并带有颜色

2024-01-11

HTML:

<?xml version="1.0" encoding="utf-8"?>
<html>
  <head>
    <title>Circle</title>
    <link rel="stylesheet" href="stylesheet.css" type="text/css" />
  </head>
  <body>
    <div class="circle"><p class="innerCircle"></p></div>
  </body>
</html>

CSS:

.circle {
    width: 450px;
    height: 450px;

    border-top: 30px solid #416fa6;
    border-right: 30px solid #718242;
    border-bottom: 30px solid #63ae98;
    border-left: 30px solid #b45447;
    -webkit-border-radius: 300px;
       -moz-border-radius: 300px;
            border-radius: 300px;
}
.innerCircle {
    width: 0px;
    height: 0px;
    border-top: 210px solid #416FA6;
    border-left: 210px solid #B45447;
    border-right: 210px solid #718242;
    border-bottom: 210px solid #FFA500;
    -webkit-border-radius: 100%;
       -moz-border-radius: 100%;
            border-radius: 100%;
    margin-left: 15px;
    margin-right:0px;
    margin-top: 15px;
    margin-bottom:0px; 
    /* border-radius: 50%;
    background-color: green; */
}

我想用线把一个圆分成12部分内圆如下图所示。我尝试了一些但不完全。所以请给一些想法。

提前致谢。


这可以使用 CSS 转换来完成

  1. 对于 12 个相等的切片,每个切片角度将为 30 度。

  2. 我们需要根据垂直轴和切片起点之间的角度旋转每个切片。所以第一个切片将旋转 0deg,最后一个切片将旋转 330deg

  3. 此外,我们需要将每个切片倾斜负数(90 度 - 切片角度) 在这种情况下,它是 -(90deg - 30deg) =skewY(-60deg)

  4. 关于正文:

a) 我们需要使用以下命令来恢复切片内容的倾斜skewY(60deg)

b) 为了使文本在切片中居中,我们需要将其旋转切片角度的一半,因此:rotate(15deg)

FIDDLE http://jsfiddle.net/danield770/hwpa0uk1/9/

.circle {
  position: relative;
  border: 1px solid black;
  padding: 0;
  margin: 1em auto;
  width: 20em;
  height: 20em;
  border-radius: 50%;
  list-style: none;
  overflow: hidden;
}

li {
  overflow: hidden;
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 50%;
  transform-origin: 0% 100%;
}

.text {
  position: absolute;
  left: -100%;
  width: 200%;
  height: 200%;
  text-align: center;
  transform: skewY(60deg) rotate(15deg);
  padding-top: 20px;
 
}

li:first-child {
  transform: rotate(0deg) skewY(-60deg);
}

li:nth-child(2) {
  transform: rotate(30deg) skewY(-60deg);
}

li:nth-child(3) {
  transform: rotate(60deg) skewY(-60deg);
}

li:nth-child(4) {
  transform: rotate(90deg) skewY(-60deg);
}

li:nth-child(5) {
  transform: rotate(120deg) skewY(-60deg);
}

li:nth-child(6) {
  transform: rotate(150deg) skewY(-60deg);
}

li:nth-child(7) {
  transform: rotate(180deg) skewY(-60deg);
}

li:nth-child(8) {
  transform: rotate(210deg) skewY(-60deg);
}

li:nth-child(9) {
  transform: rotate(240deg) skewY(-60deg);
}

li:nth-child(10) {
  transform: rotate(270deg) skewY(-60deg);
}

li:nth-child(11) {
  transform: rotate(300deg) skewY(-60deg);
}

li:nth-child(12) {
  transform: rotate(330deg) skewY(-60deg);
}

li:first-child .text {
  background: green;
}

li:nth-child(2) .text {
  background: tomato;
}

li:nth-child(3) .text {
  background: aqua;
}

li:nth-child(4) .text {
  background: yellow;
}

li:nth-child(5) .text {
  background: orange;
}

li:nth-child(6) .text {
  background: purple;
}

li:nth-child(7) .text {
  background: cyan;
}

li:nth-child(8) .text {
  background: brown;
}

li:nth-child(9) .text {
  background: gray;
}

li:nth-child(10) .text {
  background: pink;
}

li:nth-child(11) .text {
  background: maroon;
}

li:nth-child(12) .text {
  background: gold;
}
<ul class="circle">
  <li>
    <div class="text">1</div>
  </li>
  <li>
    <div class="text">2</div>
  </li>
  <li>
    <div class="text">3</div>
  </li>
  <li>
    <div class="text">4</div>
  </li>
  <li>
    <div class="text">5</div>
  </li>
  <li>
    <div class="text">6</div>
  </li>
  <li>
    <div class="text">7</div>
  </li>
  <li>
    <div class="text">8</div>
  </li>
  <li>
    <div class="text">9</div>
  </li>
  <li>
    <div class="text">10</div>
  </li>
  <li>
    <div class="text">11</div>
  </li>
  <li>
    <div class="text">12</div>
  </li>

</ul>

NB:IE9 和 Safari/iOS 分别需要 -ms 和 -webkit 供应商前缀。 (caniuse http://caniuse.com/#feat=transforms2d)

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

如何使用css3/javascript将圆分成12等份并带有颜色 的相关文章

  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 指针事件:无,过滤,适用于 ie8 和任何地方,不适用于 ie9

    正如我在这里看到的 https stackoverflow com questions 3680429 click through a div to underlying elements 4839672 4839672 过滤器可用于模拟跨
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如

随机推荐

  • 需要帮助调试旨在更新 Google 云端硬盘中数百个文件的 Google Apps 脚本代码

    我工作的公司刚刚更新了其品牌 影响了保存到共享 Google 云端硬盘的数百个 Excel 和 PowerPoint 文件 有一个团队正在努力更新文件 我的挑战是找到一种有效的方法来添加新文件并删除 Google 云端硬盘中的旧文件 我创建
  • 实现一个简单的 Dagger2 示例

    我是 Dagger2 的新手 我一直使用 Koin 我正在尝试实现一个简单的示例 但我真的不知道我缺少什么 这是我到目前为止所得到的 应用程序 gradle ext daggerVersion 2 23 2 implementation c
  • “插入”和“删除”表是否保证在 AFTER UPDATE 触发器中以相同的顺序返回其记录?

    如果我有一个 AFTER UPDATE 触发器 将会 SELECT FROM inserted and SELECT FROM deleted 按同样的顺序把他们的记录还给我吗 IE 假设我能够索引到他们的结果集 将 del 5 和 ins
  • 将 CSV 文件导入 C#

    我正在构建一个网站 要求之一是用户从电子邮件客户端导出联系人 然后将其导入到网站中 因为每个电子邮件客户端以稍微不同的格式导出他们的联系人 这让我摸不着头脑 必须找到处理它的最佳方法 因为我不知道字段是什么 也不知道分隔符是什么 我只想瞄准
  • 获取字体支持的字符 - 在 C# 中

    我有一个支持日语字符的第三方字体 我需要将其用于应用程序 每当该字体不支持某个字符时 就会绘制常见的矩形 默认字符 显然 并非所有日语字符都受支持 因为如果我尝试绘制翻译办公室给我们的翻译 就会发现有很多矩形 每当使用不支持的字符时 我都需
  • 如何将 JS 对象集合发送到 ASP.NET API 服务?

    我正在尝试将 JavaScript 对象集合发送到我的 API 服务 但服务器收到空对象列表
  • 如何同时部署两个 ClickOnce 版本?

    我希望能够为我的应用程序提供一个测试 ClickOnce 服务器 用户可以在其中并行运行生产版本和测试版本 这可能吗 我首先尝试使用以下内容AssemblyInfo cs并且还更改了 ClickOnce 部署中的名称 尽管所实现的所有这些都
  • 何时将 volatile 与寄存器/局部变量一起使用

    在 CUDA 中使用 volatile 限定符声明寄存器数组的含义是什么 当我尝试使用 volatile 关键字和寄存器数组时 它删除了溢出寄存器内存到本地内存的数量 即强制 CUDA 使用寄存器而不是本地内存 这是预期的行为吗 我在 CU
  • 访问 BeanFactoryPostProcessor 中的属性

    我正在尝试创建一些东西 它将根据可配置的属性自动创建bean 来自application yml等 因为我不能像通常那样访问属性组件BeanFactoryPostProcessor 我有点困惑如何访问它们 如何访问应用程序属性BeanFac
  • 如何在 .NET 交互式笔记本中绘制图像(C#、VS Code)

    我正在尝试使用 C 在 NET 交互式笔记本中绘制简单的图形 有点像 Dr Racket 的 C 版本 到目前为止我见过的最简单的事情是using System Drawing SFML NET Raylib cs 也可以工作 但它们会打开
  • Python 中的 NoSql 注入

    当试图提出这个问题时 我得到了this one https stackoverflow com questions 4167077 mongodb injection它使用的是Java 并且在答案中给出了一个Ruby示例 并且似乎只有在使用
  • Vaadin 通过单击按钮重定向到 URL

    我已经搜索了很长时间 但我确实无法弄清楚这一点 如何将用户重定向到新的外部链接 例如www google com 当他们点击 Vaadin 中的按钮时 到目前为止我唯一能做的就是将链接放入链接中 Link link new Link lin
  • 如何构建没有版本后缀的ffmpeg共享库

    有没有一种方法可以配置为Android构建没有版本号后缀的ffmpeg共享库 我能够使用不同的选项进行构建 但总是得到像 libavcodec so 57 这样的文件 我需要没有后缀的库 例如 libavcodec so 我认为选项 dis
  • 为什么 UDP 在其数据包中有两次“UDP 长度”字段?

    为什么 UDP 在其数据包中有两次 UDP 长度 字段 这不是多余的吗 如果需要进行某种错误检查 请提供示例 你的观察是正确的 长度字段是多余的 因为IP头和UDP头都有长度字段 我对这种冗余原因的唯一猜测是 它发生是因为 UDP 是在当时
  • 部分 .csproj 文件

    是否可以将 csproj 中的信息拆分到多个文件中 有点像项目版本partial class特征 您不能拥有多个主 csproj 但因为 csproj 的底层接线是使用 msbuild 完成的 所以您可以简单地拥有多个相互导入的部分 csp
  • SwiftUI 列表在任何视图更改时重置滚动

    我有一个非常简单的列表 其中有一些部分 在同一视图中 我还有一个按钮 当选择任何列表项时 该按钮将被启用 这是由状态变量控制的 当发生这种情况时 如果列表向下滚动 状态变量将发生变化 以启用按钮 并且所有视图将刷新 导致我的列表滚动到顶部
  • 使用 pandas 组合日期和时间列

    我有一个带有以下列的 pandas 数据框 data Date 01 06 2013 02 06 2013 02 06 2013 02 06 2013 02 06 2013 03 06 2013 03 06 2013 03 06 2013
  • 使用 memcache 进行 Ratchet 会话数据同步

    我创建了一个 Ratchet Web Socket 服务器并尝试使用 SESSIONS 在 HTTP Web 服务器 端口 80 上的 php 文件中 我像这样设置会话数据 use Symfony Component HttpFoundat
  • PBEWITHSHA256AND128BITAES-CBC-BC 在 RedHat 6.4 上创建 java.security.NoSuchAlgorithmException

    我们有一个应用程序使用Bouncy Castle使用加密数据PBEWITHSHA256AND128BITAES CBC BC算法 它运行良好Ubuntu跑步OpenJDK 1 7 但是当我们把它移到RedHat 6 4也在运行OpenJDK
  • 如何使用css3/javascript将圆分成12等份并带有颜色

    HTML div class circle p class innerCircle p div CSS circle width 450px height 450px border top 30px solid 416fa6 border