以下是我希望它的外观:
我意识到这是一个丑陋的模型,显然当我真的这样做时,比例看起来会更好,但我想知道如何用CSS做这件事。
小提琴在这里http://jsfiddle.net/bU3QS/1/
<div class="header">
</div>
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: #000;
z-index: 10000;
height: 110px;
overflow: hidden;
}
答案 0 :(得分:7)
使用:after
伪元素:
.header:after {
content: '';
position: absolute;
background: black;
width: 50px;
height: 50px;
z-index: 1;
border-radius: 50%; /* Makes the element circular */
bottom: -25px;
left: 50%;
margin-left: -25px;
}
对于此解决方案,已从overflow: hidden;
CSS中删除.header
。
这是一个小提琴:http://jsfiddle.net/t97AX/
这是另一种方法,它不依赖于半圆的宽度来使其正确居中:
.header:after {
content: '';
position: relative;
top: 100%;
display: block;
margin: 0 auto;
background: red;
width: 50px;
height: 25px;
border-radius: 0 0 50px 50px;
}
小提琴(为清晰起见,半圆形红色):http://jsfiddle.net/x4mdC/
有关:before
和:after
的更多信息:http://www.w3.org/TR/CSS2/selector.html#before-and-after
答案 1 :(得分:1)
使用:after
和border-radius
创建半圆。
.header {
position: fixed;
top: 0;
left: 0;
right: 0;
background-color: #000;
height: 110px;
}
.header:after {
content: '';
background-color: red;
position: absolute;
display: block;
width: 100px;
top: 110px;
left: 50%;
margin-left: -50px;
height: 50px;
border-radius: 0 0 50px 50px;
}
答案 2 :(得分:-1)
<div class="header">
<div class="circle">
</div>
</div>
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: #000;
height: 110px;
}
.circle {
height: 100px;
width: 100px;
border-radius: 100px;
background-color: black;
margin: auto;
position: relative;
top:45px;
}