Как сделать треугольник с закругленной ЛИНИЕЙ (не углом)

Нужно сделать треугольник с закругленной линией как на картинке. (Картинка 1) Нарисовал в Paint

Вообще если отойти этого вопроса, то хотел сделать круговое меню, чтобы каждый элемент был ссылкой на что-то... 2


Ответы (1 шт):

Автор решения: UModeL

Если задействовать правильные связки более мощных технологий (SVG, JS и т.д.), то можно сделать, что угодно. Если же делать простыми средствами (HTML и CSS), тогда всё делается просто. Правда, также просто и выглядит:

body {
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

ul {
  position: relative;
  height: 90vw; max-height: 90vh;
  width: 90vh; max-width: 90vw;
  padding: 0;
  border-radius: 50%;
  overflow: hidden;
  list-style-type: none;
  box-shadow: 0 0 0 5px violet;
}

li {
  position: absolute;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  height: 50%; width: 50%;
  transform-origin: 100% 100%;
  transform: rotate(0deg) skewy(30deg);
  box-shadow: inset 0 0 15px 0px violet;
  background-image: linear-gradient(to right bottom, black, blue);
  cursor: pointer;
  transition: 0.8s ease-out;
}
li:nth-child(2) { transform: rotate(60deg) skewy(30deg); }
li:nth-child(3) { transform: rotate(120deg) skewy(30deg); }
li:nth-child(4) { transform: rotate(180deg) skewy(30deg); }
li:nth-child(5) { transform: rotate(240deg) skewy(30deg); }
li:nth-child(6) { transform: rotate(300deg) skewy(30deg); }

ul:hover li:not(:hover) {
  box-shadow: inset 0 0 3px 0px violet;
  transition: 0.6s ease-in-out;
}
li:hover {
  box-shadow: inset 0 0 25px 10px violet;
  transition: 0.4s ease-in-out;
}

li a {
  margin: 20% 15%;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 33%; width: 33%;
  border-radius: 50%;
  font: bold 100%/1em sans-serif;
  text-decoration: none;
  transform: skewy(-30deg) rotate(0deg);
  color: white;
  box-shadow: inset 0 0 5px 5px violet;
  transition: 0.4s ease-in-out;
}
li:nth-child(2) a { transform: skewy(-30deg) rotate(-60deg); }
li:nth-child(3) a { transform: skewy(-30deg) rotate(-120deg); }
li:nth-child(4) a { transform: skewy(-30deg) rotate(-180deg); }
li:nth-child(5) a { transform: skewy(-30deg) rotate(-240deg); }
li:nth-child(6) a { transform: skewy(-30deg) rotate(-300deg); }

li:hover a {
  color: violet; box-shadow: inset 0 0 5px 5px white;
}
<ul>
  <li><a href="#">1</a></li>
  <li><a href="#">2</a></li>
  <li><a href="#">3</a></li>
  <li><a href="#">4</a></li>
  <li><a href="#">5</a></li>
  <li><a href="#">6</a></li>
</ul>

→ Ссылка