您将如何在CSS中处理此问题?
到目前为止,这是我所拥有的,但与设计者的愿景相去甚远。
我的方法是在伪选择器之前和之后设置一个,顶部细长的半个圆使用一个伪选择器(伪选择之前的一个),伪选择器之后使用一个伪选择器,在底部设置一个较粗的部分-角度很小-但是,它也不是一个完整的半圆-只有1/3圆左右。
没有设计师可以咨询。
有什么建议吗?
.searchText {
color: black;
display: block;
position: relative;
height: 40px;
width: 196px;
font-size: 18px;
font-weight: 600;
line-height: 21px;
top: 100px;
left: 100px;
}
.searchText:before {
content: "";
position: absolute;
top: -25px;
left: -18px;
box-sizing: border-box;
height: 28px;
width: 56px;
border: 2px solid #f57e22;
border-bottom: 0;
border-top-left-radius: 28px;
border-top-right-radius:28px;
}
.searchText:after {
content: "";
box-sizing: border-box;
height: 28px;
width: 56px;
border: 5px solid #f57e22;
border-top: 0;
position: absolute;
top: 10px;
bottom: 2px;
left: -26px;
border-bottom-left-radius: 28px;
border-bottom-right-radius:28px;
transform: rotate(20deg);
}
<span class="searchText">Search</span>
答案 0 :(得分:1)
您可以按以下方式尝试。如果仅对左边界和底边界着色,则您将近似1/3圆:
.box {
display:inline-block;
padding:20px 0 20px 25px;
font-weight:bold;
position:relative;
}
.box::before {
content:"";
position:absolute;
top:2px;
left:0;
width:40px;
height:20px;
border-radius:25px 25px 0 0;
border:2px solid #f57e22;
border-bottom:none;
transform:rotate(-6deg); /*a small rotation to this one to avoid the text overlap*/
}
.box::after {
content:"";
position:absolute;
bottom:9px;
left:0;
width:40px;
height:20px;
border-radius: 0 0 25px 25px;
border:4px solid #f57e22;
border-top:none;
border-right-color:transparent;
}
<div class="box">
Search
</div>