@alvaromontoro 的作品给我留下了深刻的印象

使用 CSS 绘制多哥国旗
阿尔瓦罗·蒙托罗·11 月 19 日
超文本标记语言
我添加一个
<div role="img" aria-label="Flag of Taiwan" class="flag taiwan"></div>
CSS
我使用与@alvaromontoro相同的方法创建了台湾国旗的基本背景:红色背景色,左上角有一个蓝色矩形。
.flag.taiwan { aspect-ratio: 3 / 2; height: 500px; position: relative; background: linear-gradient(rgb(19, 53, 129) 0 0) 0 0 / 50% 50% no-repeat, rgb(205, 44, 36); }
太阳报
好了,最简单的部分完成了。现在是真正的交易的时候了。太阳照在旗帜上。
看起来相当复杂,有12根梁,中心有一个圆。如何使用伪元素 ::before 和 ::after 来绘制它们?感觉只有 Clip-path: path() 是唯一的方法,因为 path() 可以绘制我们想要的任何形状。然而,clip-path:path()有一个致命的缺点:它没有响应!这意味着如果我选择这种方法,旗帜只能有一种尺寸。
我开始在谷歌上搜索许多台湾国旗的 SVG 文件。我注意到他们只使用 2 个元素来代表太阳。
- 一颗白色十二光束星
- 带有蓝色边框的白色圆圈
当圆圈放在星星的中心时。看起来有 12 根光束围绕着圆圈,并具有所需的间隙。太聪明了!看起来设计师们已经想出了这种绘制太阳的巧妙方法。通过采用这种方法,我可以使用 ::before 作为圆圈,使用 ::after 作为星号。
12光束星
很容易找到台湾国旗的SVG文件。不幸的是,所有的星星都是由path()绘制的。这是因为 path() 在真实的
这是一个非常困难的问题。我最终的解决方案真的是计算12束星所有点的所有位置吗?我利用这个出色的在线 SVG 路径编辑器 https://yqnn.github.io/svg-path-editor/ 来可视化路径中的所有点。
我问我亲爱的数学很好的兄弟,其余的点的位置是什么。他用mathematica解了12个线性方程并得到了所有分数! ?
然后,我返回到路径编辑器,绘制星星的轮廓作为路径,并对其进行缩放,使其处于 100*100 的范围内。
然后我将所有位置转换为百分比,因为它已经在 100*100 范围内。结果,我们可以在旗帜上显示星星
<div role="img" aria-label="Flag of Taiwan" class="flag taiwan"></div>
圈子
圈子相对来说比较容易。然而,我的第一次尝试是使用边框。失败是因为边框的宽度只能是px。我改为使用径向渐变。棘手的部分是径向渐变的百分比需要是元素的对角线,因此它还需要一些数学运算,但这并不难。
.flag.taiwan { aspect-ratio: 3 / 2; height: 500px; position: relative; background: linear-gradient(rgb(19, 53, 129) 0 0) 0 0 / 50% 50% no-repeat, rgb(205, 44, 36); }
结果
完整的 CSS 是
&::after { content: ''; position: absolute; top: 6.25%; left: 12.5%; width: 25%; height: calc(3 / 8 * 100%); background: white; clip-path: polygon(50% 0%,56.6987% 25%,75% 6.6987%,68.3013% 31.6987%,93.3013% 25%,75% 43.3013%,100% 50%,75% 56.6987%,93.3013% 75%,68.3013% 68.3013%,75% 93.3013%,56.6987% 75%,50% 100%,43.3013% 75%,25% 93.3013%,31.6987% 68.3013%,6.6983% 75%,25% 56.6987%,0% 50%,25% 43.3013%,6.6983% 25%,31.6987% 31.6987%,25% 6.6983%,43.3013% 25%);; }
您还可以在下面查看我在 codepen 上的工作
希望你喜欢!
以上是用 CSS 绘制台湾国旗的详细内容。更多信息请关注PHP中文网其他相关文章!

我之前说,HSL是我们拥有的最佳颜色格式。我们大多数人都喜欢阅读十六进制代码的大卫·德桑德罗(David Desandro)。 HSL(a)是色相,饱和,

我看到了英国第5频道新闻的Twitter上发布的一段视频(我不知道它们的信誉是什么,远离我的海洋)与锚点Claudia一起

恭喜ShopTalk和Codepen Radio的播客编辑Chris Enns登陆了一个非常酷的新播客,以编辑:商业爸爸。它的Alexis Ohanian,

一些HTML元素接受宽度和高度作为属性。有些没有。这些属性有时被称为呈现属性。关于它们的问题是,他们被任何其他样式信息所覆盖。那


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能