- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在尝试制作一个有光环的行星,就像这张照片
我目前正在以一种看起来非常肮脏的方式来做这件事。圆环(椭圆)是一个没有背景和旋转黑色边框的 div,我通过在顶部添加另一半红色圆圈来实现圆环在行星后面的效果。
这是 JSFiddle下面是一个片段演示。
.elipse {
width: 300px;
height: 105px;
background: none;
border-radius: 50%;
-ms-transform: rotate(40deg); /* IE 9 */
-webkit-transform: rotate(40deg); /* Safari */
transform: rotate(40deg);
position: absolute;
left: 45px;
top: 45px;
border: 5px solid black;
}
.full-planet {
height: 170px;
width: 170px;
border-radius: 170px 170px 170px 170px;
-moz-border-radius: 170px 170px 170px 170px;
-webkit-border-radius: 170px 170px 170px 170px;
position: absolute;
left: 120px;
top: 20px;
background: red;
}
.half-planet {
height: 85px;
width: 170px;
border-radius: 170px 170px 0 0;
-moz-border-radius: 170px 170px 0 0;
-webkit-border-radius: 170px 170px 0 0;
-ms-transform: rotate(40deg); /* IE 9 */
-webkit-transform: rotate(40deg); /* Safari */
transform: rotate(40deg);
position: absolute;
left: 147px;
top: 30px;
background: red;
}
.cont {
padding-left: 100px;
padding-top: 100px;
position: relative;
width: 0;
height: 0;
}
<div class='container'>
<div class="full-planet"></div>
<div class='elipse'></div>
<div class="half-planet"></div>
</div>
调整参数以获得良好的对齐非常麻烦。例如,如果我必须更改一个参数,我几乎必须更改所有其他参数以保持一致。有没有办法做到这一点,这样我就不需要根据我的愿景不断调整参数?我觉得有一种更简洁的方法可以做到这一点。
最佳答案
使用 SVG:
我通常会推荐使用 SVG 来处理此类效果/形状,因为使用 SVG 绘制圆弧要容易得多。 SVG 元素的 z-index 取决于它们在 DOM 中出现的顺序。所以也更容易控制他们的顺序。 SVG 本质上也是响应式的。
您可以在 this page 中找到有关如何使用 SVG 绘制椭圆弧的更多信息。 .
svg {
width: 200px;
height: 200px;
margin: 20px;
}
<svg viewBox='0 0 130 130'>
<path d='M0,78 a65,25 0 1 1 102.5,45' stroke='black' stroke-width='2' fill='transparent' transform='rotate(45,100,100)' />
<circle cx='65' cy='65' r='45' fill='red' />
<path d='M0,78 a65,25 0 1 0 102.5,45' stroke='black' stroke-width='2' fill='transparent' transform='rotate(45,100,100)' />
</svg>
使用 CSS:
使用 CSS 很难创建这种效果,您很可能需要额外的元素来产生这种效果。在你的代码中,你在顶部放置了一个额外的半圆,使环的一部分落后,而在我下面的代码片段中,我使用了一个额外的元素,其 z-index
的一部分用于戒指。然而,我对几乎所有设置都使用了百分比,因此当一个参数发生变化时,不需要更改很多参数。正如您在代码片段输出中看到的(将鼠标悬停在形状上),它也非常灵敏。
.wrapper {
position: relative;
height: 200px;
width: 200px;
}
.ring { /* produces the front part of the ring */
position: absolute;
height: 100%;
width: 45%;
left: 27.5%; /* half of 100% - width (to position in center) */
border: 2px solid;
border-color: black transparent black black;
border-radius: 50%;
transform: rotate(-45deg);
z-index: 2; /* brings it forward */
}
.ring-behind { /* produces the part that goes behind */
position: absolute;
height: 100%;
width: 45%;
left: 27.5%; /* half of 100% - width (to position in center) */
border: 2px solid;
border-color: transparent black transparent transparent;
border-radius: 50%;
transform: rotate(-45deg);
z-index: -1; /* sends it behind */
}
.planet {
position: absolute;
height: 75%;
width: 75%;
top: 12.5%; /* half of 100% - height (to position in middle) */
left: 12.5%; /* half of 100% - width (to position in center) */
border-radius: 50%;
background: red;
z-index: 1; /* above the back part of the ring but below the front */
}
/* just for demo */
.wrapper {
transition: all 1s;
}
.wrapper:hover {
height: 300px;
width: 300px;
}
<div class='wrapper'>
<div class='ring'></div>
<div class='ring-behind'></div>
<div class='planet'></div>
</div>
关于html - 使用 CSS 实现带有环状效果的行星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35142819/
我可以使用 javascript 和其他所有东西,但在重新发明轮子之前,我想知道是否已经有一个类似的 jquery 插件,因为我想使用那个框架而不是 mootools。 我没有钱的问题,特别是 5 欧
我正在 React 应用程序中处理动画。我需要动画在悬停 后开始工作。我尝试了 :hover:after css 但不起作用。将鼠标悬停在图像上后动画可以工作,但我需要在悬停后开始。将鼠标悬停在图像上
我正在使用 jQuery 在按钮单击时实现 slider 效果。我的代码是: $(document).ready(function() { $("#mybutton").click(functio
我需要一个div标签在屏幕右侧滑出,如何使用jQuery获得这种效果?我一直在看这里:http://api.jquery.com/category/effects/sliding/而且这似乎不是我要找
我正在使用此代码实现页面 curl 效果......它在模拟器和设备中工作正常......但它不是(setType:@“pageCurl”)苹果记录的api,这导致它被iPhone拒绝App Stor
我见过各种关于 WPF 效果的引用,但它们似乎是针对位图的,而不是针对文本的。是否可以将除模糊或投影以外的效果应用于XAML中的TextBlock对象? 我想要做的示例可能是轮廓笔划,或斜角/浮雕效果
我见过各种关于 WPF 效果的引用,但它们似乎是针对位图的,而不是针对文本的。是否可以将除模糊或投影以外的效果应用于XAML中的TextBlock对象? 我想要做的示例可能是轮廓笔划,或斜角/浮雕效果
我正在尝试模拟这种效果:http://meyerweb.com/eric/css/edge/complexspiral/demo.html在我的博客上:http://segment6.blogspot
我尝试将样式应用到 Accordion Pane ,但遇到了问题。 这行不通。 accordion.setEffect(new DropShadow(BlurType.ONE_PASS_BOX, Co
关于 Datatables website 的教程足够清楚了: 在我告诉 Datatables 我正在谈论哪一列后,我只需将切换按钮放入: column.visible( ! column.visib
我正在寻找 scratchOut 效果,随便叫它什么。 这是从前景中删除图像的效果,因此背景图像变得可见。 我曾尝试使用 jquery 插件重新创建此效果,但它并不像我希望的那样流畅。 有没有人有这种
本文实例讲述了android实现文字和图片混排(文字环绕图片)效果。分享给大家供大家参考,具体如下: 在平时我们做项目中,或许有要对一张图片或者某一个东西进行文字和图片说明,这时候要求排版美观,所
本文实例讲述了Javafx简单实现【我的电脑资源管理器】效果。分享给大家供大家参考。具体如下: 1. java代码: ?
我是 ngrx 的新手,正在尝试让我的 ngrx 商店的 @Effect 函数正常工作。下面的代码显示了如果我没有使用 ngrx 商店,服务是如何工作的。我首先调用 http.get 来获取列表,然后
基本上我搜索了很多,解决方案建议应用一些 PNG 掩码或不提供所需的解决方案。 我发现了什么。 ffmpeg -i main.mkv -i facecloseup.mkv -filter_compl
有关使用从商店中选择的状态的效果的 Ngrx 文档状态(没有双关语意) Note: For performance reasons, use a flattening operator like co
我有一个数据网格控件,我在其中使用名为 FastShadow 的自定义效果,它就像一个光晕。 我希望效果在其边界之外发光,这样很好,但是当我在顶部绘制另一个形状时,我不希望这个形状受到影响。在本例中,
除了子 div.exception 中的所有内容,我想将 div.main 中的所有文本设为灰色。 div.exception 应该看起来好像类 main 从未添加到父 div。 这可能吗?如果是这样
我有一个 PDF 文件,我想重现此包页面中的页面 curl 效果: https://pub.flutter-io.cn/packages/page_turn 我试过用这个 page_turn插件,它需
我想测试一个效果如下: 如果调度了 LoadEntriesSucces 操作,则效果开始 等待 5 秒 5 秒后发送 http 请求 当响应到达时,将分派(dispatch)新的操作(取决于响应是成功
我是一名优秀的程序员,十分优秀!