Z-индекс стилевого оформления псевдоэлемента - PullRequest
0 голосов
/ 02 октября 2018

В настоящее время я работаю над меню навигационной панели.Я хочу использовать стрелку, созданную с помощью CSS borders, при наведении курсора на мои элементы nav.В настоящее время это работает, однако созданная стрелка :after в настоящее время наполовину скрыта, когда она проходит над nav border.Даже при стилизации z-индекса, как показано ниже, он все еще скрыт.

Я могу вставить только небольшой фрагмент кода, потому что в противном случае это будет слишком много, но, надеюсь, вы поймете, что я имею в виду.

#navbar {
  overflow: hidden;
  background-color: white;
  font-size: 11px;
  z-index: 2;
  border: 1px solid grey;
  height: 50px;
}

.navbar-links {
  margin-left:10em;
  height: 100%;
  padding: 0em 4em 0em 1em;
  min-width:348px;
  margin-top:auto;
  margin-bottom:auto;
}

#navbar .navbar-links a {
  display:block;
  float: left;
  color: grey;
  padding: 14px 20px 14px 20px;
  text-decoration: none;
  font-size: 14px;
  margin-top: auto;
  margin-bottom: auto;
  position:relative;
}

#navbar .navbar-links a:hover::after {
  left: calc(50% - 10px);
  content: '';
  position: absolute;
  bottom: -12px;
  width: 0;
  height: 0;
  text-align: center;
  border-width: 10px 10px 0;
  border-style: solid;
  border-color: grey transparent;
  margin: auto;
  display: block;
  left:0;
  right: 0;
  z-index:10;
}
  <div id="navbar">
        <div class="navbar-links">
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link1']" (mouseover)="displayInsightDropDown();" (mouseleave)="hideInsightDropDown();">LINK 1</a>
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link2']">LINK 2</a> 
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link3']">LINK 3</a> 
        </div>
  </div>

Я просто хочу показать эти стрелки за пределами поля навигации.Любые предложения будут оценены.

1 Ответ

0 голосов
/ 02 октября 2018

Он скрыт, потому что это дочерний элемент #navbar, для которого вы объявили, что переполнение должно быть скрыто.

Вам просто нужно установить overflow: visible; на вашем #navbar.

#navbar {
  overflow: visible; /* ← This does the trick */
  background-color: white;
  font-size: 11px;
  z-index: 2;
  border: 1px solid grey;
  height: 50px;
}

.navbar-links {
  margin-left:10em;
  height: 100%;
  padding: 0em 4em 0em 1em;
  min-width:348px;
  margin-top:auto;
  margin-bottom:auto;
}

#navbar .navbar-links a {
  display:block;
  float: left;
  color: grey;
  padding: 14px 20px 14px 20px;
  text-decoration: none;
  font-size: 14px;
  margin-top: auto;
  margin-bottom: auto;
  position:relative;
}

#navbar .navbar-links a:hover::after {
  left: calc(50% - 10px);
  content: '';
  position: absolute;
  bottom: -16px;
  width: 0;
  height: 0;
  text-align: center;
  border-width: 10px 10px 0;
  border-style: solid;
  border-color: grey transparent;
  margin: auto;
  display: block;
  left:0;
  right: 0;
  z-index:10;
}
<div id="navbar">
        <div class="navbar-links">
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link1']" (mouseover)="displayInsightDropDown();" (mouseleave)="hideInsightDropDown();">LINK 1</a>
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link2']">LINK 2</a> 
          <a [routerLinkActive]="['navbar-links-active']" [routerLink]="['link3']">LINK 3</a> 
        </div>
  </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...