当前位置:  开发笔记 > 前端 > 正文

三角形有两个圆形边

如何解决《三角形有两个圆形边》经验,为你挑选了1个好方法。

我正在尝试创建一个三角形,但边缘圆润.而我的意思是双方,而不是角落.原因是三角形意味着类似动物的耳朵.但是,我无法弄清楚我是如何使两侧不是,直,而是.如果可能的话,我想要一个仅限CSS的解决方案.

如果你需要一张照片,这就是我想要的.

三角形有2个圆形边

我已经设法做到这一点,但我不知道下一步该去哪里.

.e1 {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 75px 200px 75px;
  border-color: transparent transparent #f7882e transparent;
  -webkit-transform: rotate(-45deg);
}

我试着瞎搞与:before:after,但我想我搞砸了,因为我甚至不能,尽管给它提供一套宽度/高度和块显示它展现出来......如此反复,不知道哪里去了.



1> Harry..:

使用CSS:

使用CSS可以实现的最佳效果如下所示.形状结构如下:

除了border-top-right-radius之外,其边界半径为100%的伪元素.这会产生叶状的形状.然后将其旋转-45度,使尖端朝向顶部.

然后,该伪元件被定位成使得只有它的一半是(通过设置可见overflow作为hidden父).

然后将父容器的Y轴旋转一个高角度以压缩形状.这使它看起来更像一个箭头.

形状是响应的,但你可以看到它的创建非常棘手,这就是为什么CSS不适合这项工作的原因.SVG是正确的工具,下面提供了演示.

div {
  position: relative;
  height: 200px;
  width: 200px;
  border-bottom: 2px solid tomato;
  overflow: hidden; /* hide the parts that are not required */
  transform: rotateY(65deg); /* to compress the shape in Y axis */
}
div:before {
  position: absolute;
  content: '';
  left: 0px;
  top: 50%; /* positioning to make only part of it visible */
  height: calc(100% - 6px); /* to offset for the border width */
  width: calc(100% - 6px); /* to offset for the border width */
  border-radius: 100% 0% 100% 100%;
  transform: rotate(-45deg);
  border: 3px solid tomato; /* made thicker because the transform will make it look thinner than normal */
}

/* just for demo */

div {transition: all 1s ease;}
div:hover {
  height: 250px;
  width: 250px;
}
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有