Как сделать так, чтобы фон ссылки в стиле inline-block не появлялся за следующими родственниками? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть несколько ссылок, которые масштабируются и меняют фоны с переходами 1s при наведении курсора. При наведении курсора на первую ссылку она масштабируется настолько сильно, что на ней отображаются другие ссылки, а другие ссылки видны под ней. Вторая ссылка при наведении не отображается под первой ссылкой, а появляется под третьей ссылкой. Третья ссылка не отображается ни под какой другой ссылкой.

a {
  color: lightblue;
  transform: scale(1);
  transition: all 1s;
  display: inline-block;
  background-color: transparent;
}

a:hover {
  transform: scale(5);
  background-color: yellow;
}
<div class="page-footer">
  <a href="">ABCD</a> /
  <a href="">EFGH</a> /
  <a href="">IJKL</a>
</div>

Такое поведение наблюдается как на Chrome, так и на Firefox. Я не понимаю, почему так работает, и я sh заставлю фоны ссылок вести себя нормально.

Спасибо.

1 Ответ

1 голос
/ 03 апреля 2020

Это из-за порядка, в обычном потоке единственным существующим контекстом стекирования является <html>, и элемент будет покрыт следующим элементом, который следует за ним в разметке.

Использование z- index, порядок рендеринга определенных элементов зависит, однако z-index не будет иметь никакого эффекта, потому что z-index работает только с позиционированными элементами.

позиционированный элемент: элемент со значением позиции, другим чем stati c

Мы можем использовать position:relative, потому что он ведет себя как stati c.

a {
  color: lightblue;
  transform: scale(1);
  transition: all 1s;
  display: inline-block;
  background-color: transparent;
  z-index: 1;
}

a:hover {
  transform: scale(5);
  background-color: yellow;
  position: relative;
  z-index: 2; /* higher than other <a> */
}


/* Just to center Not needed */
div {
  display: table;
  margin: 5em auto;
}
<div class="page-footer">
  <a href="">ABCD</a> /
  <a href="">EFGH</a> /
  <a href="">IJKL</a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...