CSS 半圆效果
CSS semi-circle effect
我正在尝试仅使用 CSS.
来创建一个独特的形状
这是我目前的情况:http://jsfiddle.net/u6vu96u8/
但是,半圆底部flat
太多了。
有没有可能,我可以让曲线正好在中间相交而没有平线?
代码:
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 35px;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
height: 15px;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -16px;
line-height: 0;
}
<button>News
<span class="full-circle">+</span>
</button>
您的全圆 class 的宽度为 45 像素,而边框半径为 30 像素。如果你希望它是一个半圆,你需要与宽度相同的边框半径。将宽度更改为 30px 似乎可以满足您的要求(试试看)
您可以使用 .full-circle
class
的高度和底部 css 属性
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 35px;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
height: 19px;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -20px;
line-height: 0;
}
<button>News<span class="full-circle">+</span></button>
您可以减小宽度以匹配边框半径。
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 15px;
width: 30px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -16px;
line-height: 0;
}
<button>News<span class="full-circle">+</span></button>
你在全圆上有 2 个高度属性 class,在我删除第一个之前有点混乱。
button {
font-size: 1em;
background: #fff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
display:block;
border: 1px solid #1588cb;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 60px 60px;
border-top: none;
height: 25px;
background: #fff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -26px;
line-height: 0;
}
https://jsfiddle.net/hj3g3gjL/
更新:
我有点成功了...不管怎样,你欠我一杯啤酒!
.full-circle {
display:block;
border-bottom: 1px solid #1588cb;
width: 45px;
-moz-border-radius: 45px / 36px;
-webkit-border-radius: 45px / 36px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 45px / 36px;
height: 35px;
background: #fff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -17px;
line-height: 40px;
}
https://jsfiddle.net/awea2s2y/
或者这个稍微好一点? https://jsfiddle.net/p9hynbrb/
我正在尝试仅使用 CSS.
来创建一个独特的形状这是我目前的情况:http://jsfiddle.net/u6vu96u8/
但是,半圆底部flat
太多了。
有没有可能,我可以让曲线正好在中间相交而没有平线?
代码:
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 35px;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
height: 15px;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -16px;
line-height: 0;
}
<button>News
<span class="full-circle">+</span>
</button>
您的全圆 class 的宽度为 45 像素,而边框半径为 30 像素。如果你希望它是一个半圆,你需要与宽度相同的边框半径。将宽度更改为 30px 似乎可以满足您的要求(试试看)
您可以使用 .full-circle
class
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 35px;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
height: 19px;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -20px;
line-height: 0;
}
<button>News<span class="full-circle">+</span></button>
您可以减小宽度以匹配边框半径。
button {
font-size: 1em;
background: #ffffff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
border: 1px solid #1588cb;
height: 15px;
width: 30px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 45px 45px;
border-top: none;
background: #ffffff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -16px;
line-height: 0;
}
<button>News<span class="full-circle">+</span></button>
你在全圆上有 2 个高度属性 class,在我删除第一个之前有点混乱。
button {
font-size: 1em;
background: #fff;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border: 1px solid #1588cb;
color: #1588cb;
font-weight: 400;
height: 60px;
width: 300px;
position: relative;
margin: 25px 0 50px 0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
}
.full-circle {
display:block;
border: 1px solid #1588cb;
width: 45px;
-moz-border-radius: 30px;
-webkit-border-radius: 30px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 0 0 60px 60px;
border-top: none;
height: 25px;
background: #fff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -26px;
line-height: 0;
}
https://jsfiddle.net/hj3g3gjL/
更新:
我有点成功了...不管怎样,你欠我一杯啤酒!
.full-circle {
display:block;
border-bottom: 1px solid #1588cb;
width: 45px;
-moz-border-radius: 45px / 36px;
-webkit-border-radius: 45px / 36px;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
-o-box-sizing: content-box;
box-sizing: content-box;
border-radius: 45px / 36px;
height: 35px;
background: #fff;
position: absolute;
left: 50%;
margin-left: -17px;
bottom: -17px;
line-height: 40px;
}
https://jsfiddle.net/awea2s2y/
或者这个稍微好一点? https://jsfiddle.net/p9hynbrb/