复杂的CSS形状

时间:2019-03-01 22:42:46

标签: css css-shapes

我需要一些CSS帮助。很难解释,但是看一下代码片段,我需要黑色部分而不需要红色。

我使用了两个元素,但是一个元素应该可以...

.q-rounder {
  background: #222;
  width: 15px;
  height: 15px;
}

.quarter-circle {
  width: 15px;
  height: 15px;
  background: red;
  border-radius: 100px 0 0 0;
  -moz-border-radius: 100px 0 0 0;
  -webkit-border-radius: 100px 0 0 0;
}
<div class="q-rounder">
  <div class="quarter-circle"></div>
</div>

fiddle

2 个答案:

答案 0 :(得分:4)

使用径向渐变作为背景

.q-rounder {
  background: 
    radial-gradient(farthest-side at bottom right,transparent 94%, #222);
  width: 15px;
  height: 15px;
}
<div class="q-rounder">
</div>

带有at的另一种语法可以更好地支持(safari doesn't support the at

.q-rounder {
  background: 
    radial-gradient(farthest-side,transparent 94%, #222) top left/200% 200%;
  width: 15px;
  height: 15px;
}
<div class="q-rounder">
</div>

答案 1 :(得分:1)

如果您可以使用纯色背景色,也​​许这适合您?

基本上,before元素位于矩形的后面,该矩形的边框半径为纯色。

每个浏览器和版本均受支持。

.q-rounder {
  position: relative;
  background: white;
  width: 15px;
  height: 15px;
  border-radius: 100px 0 0 0;
}

.q-rounder:before {
  position: absolute;
  left: 0;
  top: 0;
  width: 15px;
  height: 15px;
  background: black;
  content: "";
  z-index: -1;
}
<div class="q-rounder">

</div>