Треугольник на css. Border закрывает другие блоки

193
25 июля 2018, 17:00

Есть подменю, где в вёрстке используется треугольник на css. Проблема в том что его прозрачные границы "закрывают" ссылки в подменю. Есть выход из этой ситуации? Может по-другому треугольник можно нарисовать?

.menu__item { 
  display:inline-block; 
  width: 100px; 
  height: 30px; 
  background-color:red; 
  text-align:center; 
   
} 
 
.menu__item-link { 
  display: inline-block; 
  width: 100%; 
  height: 100%; 
} 
.menu__item-activ{ 
  position:relative; 
} 
.menu__item-activ:after { 
 
} 
 
.submenu { 
  position: absolute; 
  background-color:#efefef; 
} 
 
.submenu:before { 
     content: '';  
    position: absolute; /* Абсолютное позиционирование */ 
    left: 0;  
    top:0; 
    border: 50px solid transparent; /* Прозрачные границы */ 
    border-top: 10px solid green; /* Добавляем треугольник */ 
}
<ul class="menu__list"> 
  <li class="menu__item"><a href="" class="menu__item-link">Home</a></li> 
  <li class="menu__item menu__item-activ"> 
    <a href="" class="menu__item-link">About</a> 
    <ul class="submenu"> 
      <li class="submenu-item"> <a href="" class="submenu-link">submenu1</a> </li> 
      <li class="submenu-item"><a href="" class="submenu-link">submenu2</a></li> 
      <li class="submenu-item"><a href="" class="submenu-link">submenu3</a></li> 
    </ul> 
  </li> 
  <li class="menu__item"><a href="" class="menu__item-link">Catalog</a></li> 
</ul>

Answer 1

Можно использовать pointer-events

.menu__item { 
  display:inline-block; 
  width: 100px; 
  height: 30px; 
  background-color:red; 
  text-align:center; 
   
} 
 
.menu__item-link { 
  display: inline-block; 
  width: 100%; 
  height: 100%; 
} 
.menu__item-activ{ 
  position:relative; 
} 
.menu__item-activ:after { 
 
} 
 
.submenu { 
  position: absolute; 
  background-color:#efefef; 
} 
 
.submenu:before { 
     content: '';  
    position: absolute; /* Абсолютное позиционирование */ 
    left: 0;  
    top:0; 
    border: 50px solid transparent; /* Прозрачные границы */ 
    border-top: 10px solid green; /* Добавляем треугольник */ 
    pointer-events:none; /* решение */ 
} 
/*для наглядности*/ 
.submenu a:hover{ 
  color:red; 
}
<ul class="menu__list"> 
  <li class="menu__item"><a href="" class="menu__item-link">Home</a></li> 
  <li class="menu__item menu__item-activ"> 
    <a href="" class="menu__item-link">About</a> 
    <ul class="submenu"> 
      <li class="submenu-item"> <a href="" class="submenu-link">submenu1</a> </li> 
      <li class="submenu-item"><a href="" class="submenu-link">submenu2</a></li> 
      <li class="submenu-item"><a href="" class="submenu-link">submenu3</a></li> 
    </ul> 
  </li> 
  <li class="menu__item"><a href="" class="menu__item-link">Catalog</a></li> 
</ul>

READ ALSO
Разница css и min.css

Разница css и min.css

Вот уж не знаю, к месту ли данный вопрос, но ранее меня это не интересовалоЕсли в файл style

200
Изменение ширины Autocomplete TextField

Изменение ширины Autocomplete TextField

Всем доброго! Есть Autocomplete TextField от controlsFX, и пытаюсь менять ширину, чтоб было по всей ширине TextFieldприменил стили но кроме ширины все работает

149
Ошибка при парсинге json-данных

Ошибка при парсинге json-данных

Нужно передать массив точек через jsonНа сайте используется шаблонизатор ejs

172
Модальное окно с картинкой

Модальное окно с картинкой

Как вызвать child компонент, по которому кликнули, в модальное окно? Например, нажимаю по картинке, в модальном окне появляется она же с блоком...

185