使用CSS在矩形上圈出

时间:2015-11-14 08:50:52

标签: html css css3 css-shapes

我想设计一个与下图相似的形状(圆形和矩形之间的效果):

enter image description here

我知道圆形是使用 border-radius 设计的,像形状这样的矩形设计有一些无序列表,其样式为 display:block 。但我无法理解如何将圆圈保持在矩形上,以便看起来矩形的某些部分被圆形切割成圆形(圆形和矩形之间的白色空间)。

我尝试了盒子阴影,轮廓,溢出等,但它不起作用 任何人都可以告诉我如何设计像图像一样的形状? - 谢谢

5 个答案:

答案 0 :(得分:11)

这样的东西? http://codepen.io/anon/pen/VvqRep

.rectangle{
  display:block;
  height:40px;
  width:150px;
  background:red;
  position:relative;
  margin-top:100px;
}

.circle{
  position:absolute;
  height:40px;
  width:40px;
  border-radius:40px;
  border:3px solid white;
  left:50%;
  margin-left:-25px;
  top: -20px;
    background:red;
}

使用圆圈上的边框实现“截止”效果。

如果我的asnwser帮助你,你可以选择它吗?感谢

答案 1 :(得分:6)

你可以尝试这个:

.rectangle{
  display:block;
  height:50px;
  width:150px;
  background:red;
  position:relative;
  margin-top:100px;
    border-top-left-radius: .5em;
    border-top-right-radius: .5em;
}

.circle{
  position:absolute;
  height:40px;
  width:40px;
  border-radius:40px;
  border:3px solid white;
  left:50%;
  margin-left:-25px;
  top: -20px;
  background:red;
}

DEMO HERE

答案 2 :(得分:3)

检查一下:)

.base{
  height:80px;
  width:300px;
  background:#d33;
  position:relative;
  margin-top:100px;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.circle{
  position:absolute;
  height:100px;
  width:100px;
  border-radius:50%;
  border:3px solid white;
  left:50%;
  margin-left:-55px;
  top: -40px;
  background: #d33;
}
<div class="base">
  <div class="circle"></div>
</div>

答案 3 :(得分:2)

#bg {
    position: relative;
    background: red;
    width: 200px;
    height: 50px;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    margin-top: 50px;
}
#circle {
    position: absolute;
    background: red;
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;    
    top: -50px;
    width: 75px;
    height: 75px;
    border: 3px solid #fff;
    border-radius: 50%;
}
<div id="bg">
    <div id="circle"></div>
</div>

答案 4 :(得分:2)

使用此:html和css代码:

的CSS:

#rectangle {
    width:300px;
    height:70px;
    position: relative;
    background: #cc0000;
    border-radius: 5px 5px 0 0;
}
#rectangle #circle {
    width:70px;
    height:70px;
    position: absolute;
    top:-35px;
    background:#cc0000;
    border:1px solid #fff;
    border-radius:70px;
    left: 50%;
    margin-left: -35px;
}

HTML:

<div id="rectangle">
    <div id="circle"></div>
</div>