如何不使用SVG还原2020版Google Maps图标形状?
仅用CSS还原2020版Google Maps图标问题
我正在尝试还原2020版Google Maps图标。彩色背景和空心部分的实现相对简单,只需一些渐变和mask即可完成。
以下是我目前的实现代码片段:
:root { --1-3: calc(100% / 3); --2-3: calc(100% / 3 * 2); --sqrt-2: 1.4142135624; --hole-diameter: calc(100% / var(--sqrt-2) / 3); --red: #ea4335; --yellow: #fbbc04; --green: #34a853; --blue: #1a73e8; --azure: #4285f4; } * { box-sizing: border-box; } body { margin: 0; } #wrapper { margin: 3em auto; width: 10em; background: linear-gradient(90deg, #c0392b, #8e44ad); } #icon { --mask: radial-gradient( circle at center, transparent calc(var(--hole-diameter) - 1px), #000 calc(var(--hole-diameter) + 1px) ); border-radius: 50% 50% 50% 0; aspect-ratio: 1 / 1; background: linear-gradient( 180deg, var(--red) var(--1-3), var(--yellow) var(--1-3) var(--2-3), var(--green) var(--2-3) ), linear-gradient( 180deg, var(--blue) var(--1-3), var(--azure) var(--1-3) var(--2-3), var(--green) var(--2-3) ) calc(100% - 1px); background-size: 50% 100%; background-repeat: no-repeat; -webkit-mask: var(--mask); mask: var(--mask); rotate: -45deg; }
<div id="wrapper"> <div id="icon"></div> </div>
但我无法实现它的特殊形状。是否可以仅用CSS创建该形状?
需要说明的是,我不寻求基于SVG的解决方案。这是我的个人项目,只要能在至少一款浏览器中运行即可。
内容的提问来源于stack exchange,提问作者InSync
相关产品推荐
相关产品推荐

