html – 创建一个滚动的箭头

我试图制作一个如下所示的箭头:

然而,这是最接近的:

.button {
  margin: 4em 0;
  padding: 2em;
  width: 15%;
  margin: 0 auto;
  text-align: center;
  background-color: #000000;
  color: #ffffff;
  display: -moz-Box;
  display: -ms-flexBox;
  display: -webkit-flex;
  display: flex;
  -moz-flex-flow: row wrap;
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  webkit-justify-content: center;
  justify-content: center;
}
.curved-arrow {
  display: inline-block;
  border-top: 10px solid #fff;
  border-bottom: 10px solid #fff;
  border-left: 30px solid #fff;
  border-top-right-radius: 100%;
  border-bottom-right-radius: 100%;
}
<div class="button">
  <div class="curved-arrow"></div>
</div>

这是甚么可能吗?我知道我可以使用图像,但是我的设计师使用多种颜色来使用整个网站,我宁愿只使用CSS来形状.

如果很难看到它是从左到右从上到下的平直的直线,并且曲线到右边的中间.

解决方法

SVG

CSS边框半径不会让您轻松获得准确的输出.我建议一个带有一个quadratic bezier command的路径元素的内联SVG:

svg{width:100px;}
<svg viewBox="0 0 20 8">
  <path d="M0 0 Q 30 4 0 8" />
</svg>

然后你可以用CSS填充属性来绘制箭头,看这个fiddle(注释为@Nick R的例子发表在评论中)

CSS

您还可以使用border-radius属性的2个值(请参阅MDN了解其工作原理),它很简单,但不会让箭头“点”像您的图像一样清晰:

.curved-arrow { 
  width:40px; height:25px;
  background:#000;
  border-top-right-radius:100% 50%;
  border-bottom-right-radius:100% 50%;
  
}
<div class="curved-arrow"></div>

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些