1. ホーム
  2. css

[解決済み] CSSやSVGで半円を描く

2022-02-05 20:23:18

質問

この円の下部をCSSかSVGで描画する方法を探しています。私が見たのは この答え しかし、それは完全な半円を扱っているのに対し、私は半分より少し少なくするために余分なセグメントを切り落とす必要があります。純粋なCSSでは不可能でしょうが、SVGでは修正が面倒になります。

<svg class="pie">
  <circle cx="115" cy="115" r="110"></circle>
  <path d="M115,115 L115,5 A110,110 1 0,1 225,115 z"></path>
</svg>

解決方法は?

CSSでできます。

.partial-circle {
  position: relative;
  height: 20px;
  width: 100px;
  overflow: hidden;
}
.partial-circle:before {
  content: '';
  position: absolute;
  height: 100px;
  width: 100px;
  border-radius: 50%;
  bottom: 0;
  background: #D08707;
}
<div class="partial-circle"></div>

また、2つのパーツを持つこともできます。

.partial-circle {
  position: relative;
  width: 100px;
  overflow: hidden;
}
.partial-circle:before {
  content: '';
  position: absolute;
  height: 100px;
  width: 100px;
  border-radius: 50%;
}
.partial-circle.top {
  height: 80px;
}
.partial-circle.bottom {
  height: 20px;
}
.partial-circle.top:before {
  top: 0;
  background: #E19B21;
}
.partial-circle.bottom:before {
  bottom: 0;
  background: #D08707;
}
<div class="partial-circle top"></div>
<div class="partial-circle bottom"></div>