Как добавить треугольник в конце div с непрозрачностью 0,2?

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

Https://stackblitz.com/edit/angular-3llbmq?file=src/components/sales-funnel/sales-funnel.component.html

Просто измените границу: 15px сплошная прозрачная на границу: 15px сплошная белая;;

armin momeni 15.02.2023 13:17
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
Как React Helmet спасает меня при разделении файлов CSS?
Как React Helmet спасает меня при разделении файлов CSS?
Многие новички могут столкнуться с проблемой, когда одна страница с CSS наследует свойства от другой страницы с другим CSS. У меня было много проблем,...
Селекторы CSS - Селекторы классов
Селекторы CSS - Селекторы классов
Селекторы классов CSS - это селектор CSS, используемый для применения стиля к определенному элементу. Селекторы классов определяются путем добавления...
Руководство для начинающих по веб-разработке: HTML, CSS и JavaScript.
Руководство для начинающих по веб-разработке: HTML, CSS и JavaScript.
Добро пожаловать, мои коллеги по интернету, в захватывающий мир веб-разработки! Дорогие мои начинающие, я здесь, чтобы провести вас через основы HTML,...
Mastering CSS : Введение в каскадные таблицы стилей
Mastering CSS : Введение в каскадные таблицы стилей
CSS - это язык, используемый для стилизации веб-страниц. Он определяет, как должны отображаться элементы HTML, например, их цвета, шрифты, интервалы и...
0
1
61
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Этого легко добиться с помощью псевдоэлементов ::before и ::after, один из которых обеспечивает фон «следующего шага», а другой — треугольник с цветом bg «текущего шага».

Не уверен, что вам нужны элементы в lis - поэтому я просто сделал прямые li, но было бы несложно изменить стиль для использования элементов.

Лучше не пытаться использовать непрозрачность для разницы шагов - более доступно использовать шестнадцатеричные коды напрямую, а не один шестнадцатеричный код с разными значениями непрозрачности.

Обратите внимание, что решение для предотвращения кровотечения состоит в том, чтобы разнести li с отступом и использовать псевдоэлементы до/после для заполнения пробелов - лучше сделать это, чем перекрывать элемент на следующем шаге, чтобы предотвратить проблемы с нажатием на участках, покрытых треугольниками

ul {
   display: flex;
   list-style: none;
   padding: 0;
   border: solid 1px #d4d4d4;
   background: lemonChiffon
 }
 
li {
  font-size: 16px;
  line-height: 20px;
  margin-right: 16px;
  padding: 4px 32px 4px 8px;
  position: relative;
}


.visited {
  background: #AFD954;
  color: #fff;
}

.visited::before {
  content: '';
  width: 16px; 
  height: 28px; 
  z-index: 5;
  position: absolute;
  top: 0;
  right:-16px;
  background: #9BCE29
}

.visited::after {
  content: '';
  width: 0; 
  height: 0; 
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
  border-left: 14px solid #AFD954;
  position: absolute;
  right:-14px;
  z-index: 9;
  top: 0
}

.active {
  background: #9BCE29;
  color: #fff
}

.active::before {
  content: '';
  width: 16px; 
  height: 28px; 
  z-index: 5;
  position: absolute;
  top: 0;
  right:-16px;
  background: lemonChiffon
}

.active::after {
  content: '';
  width: 0; 
  height: 0; 
  border-top: 14px solid transparent;
  border-bottom: 14px solid transparent;
  border-left: 14px solid #9BCE29 ;
  position: absolute;
  right:-14px;
  z-index: 9;
  top: 0
}

.not-visited {
  background: lemonChiffon
}
<ul>
  <li class = "visited">New Deal</li>
  <li class = "active">Contact</li>
  <li class = "not-visited">Qualified</li>

</ul>
Ответ принят как подходящий

Здесь это делается с помощью полигона, цвета адаптируйте сами

div.container {
  display: inline-flex;
  align-items: center;
  position: relative;
  background: black;
  width: 100%;
}

div.tangle {
  height: 50px;
  width: 200px;
  clip-path: polygon(0% 20%,
                  60% 20%,
                  95% 20%,
                 100% 50%,
                  95% 80%,
                  60% 80%,
                   0% 80%);
}

div.tangle:nth-child(1) {
  background:lightgreen;
  transform: translateX(20px);
  z-index:3;
}
div.tangle:nth-child(2) {
  background:green;
  transform: translateX(10px);
}
div.normal {
  height: 30px;
  width: 200px;
  background: white;
}
<div class = "container">
  <div class = "tangle"></div>
  <div class = "tangle"></div>
  <div class = "normal"></div>
</div>

Используйте clip-path с осторожностью. clip path лучше всего поддерживается браузерами, кроме IE-11

YaswanthJg 15.02.2023 14:27

Да, я думаю, это стоит отметить, что

tony 15.02.2023 14:29

Возможно, вам нужно подумать о clip-path, если пользователь живет в 2019 году, но IE 11 уже почти не используется. Далее, для этого примера, у вас получится прямая линия, которая совсем не нарушает дизайн. Так что "осторожно с clip-path" в данном случае вряд ли применимо.

Rickard Elimää 15.02.2023 14:32

@tony ur пример нуждается в обновлении с помощью свойства zIndex. если активный элемент 5-й или более . мы можем потерять контекст стека. Укажите ZIndex в обратном порядке в цикле (угловой пример), начиная с длины элементов.

YaswanthJg 15.02.2023 14:35

Я отредактировал ваш пример stackbliz. Обратите внимание на изменения HTML и CSS.

Не используйте непрозрачность, чтобы осветлить цвет. Вместо этого используйте методы осветления и затемнения SCSS.

Пожалуйста, используйте большую часть CSS, чем часть HTML для назначения стилей. Используйте классы, которые у вас есть.

ПРИМЕЧАНИЕ. Воспользуйтесь преимуществами переменных SCSS, вложенности и предопределенных методов.

Добавлен обратный z-индекс для размещения предыдущего элемента над следующим элементом.

Ниже 6 - общее количество элементов

[ngStyle] = "{
 zIndex: 6 - i
}"

Https://stackblitz.com/edit/angular-jhk6qf?file=src/components/sales-funnel/sales-funnel.component.scss

Другие вопросы по теме