Абсолютный дочерний элемент с размером, равным размеру родителя плюс границы - PullRequest
0 голосов
/ 10 марта 2020

Я в основном пытаюсь сделать элемент выглядящим «отключенным», добавляя элемент after с белым непрозрачным фильтром точно над ним.

Проблема в том, что мы просто устанавливаем ширину и высоту на 100% это не включает границу родителя!

Как я могу решить эту проблему? Мне нужно, чтобы элемент after располагался точно над его родителем

div {
  border: 5px solid blue;
  position: relative;
  padding: 1rem;
  background-color: blue;
  text-align: center;
  font-size: 120%;
  font-family: sans-serif
}

div::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: white;
  opacity: 0.6;
  z-index: 2;
}
<div>Test</div>

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Вы можете установить отрицательное поле равным границе и использовать функцию CSS calc в элементе after, например:

div::after {
  content: "";
  position: absolute;
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  top: -5px;
  left: -5px;
  background-color: white;
  opacity: 0.6;
  z-index: 2;
}
0 голосов
/ 10 марта 2020

Отрегулируйте размер и положение по количеству границ, используя calc.

CSS Пользовательские свойства будут идеальными здесь.

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

 ::before,
 ::after {
  box-sizing: inherit;
}

:root {
  --bdr: 5px;
}

div {
  border-style: solid;
  border-color: blue;
  border-width: var(--bdr);
  position: relative;
  padding: 1rem;
  background-color: grey;
  text-align: center;
  font-size: 120%;
  font-family: sans-serif;
  width: 80%;
  margin: 1em auto;
}

div::after {
  content: "";
  position: absolute;
  width: calc(100% + ( 2 * var(--bdr)));
  height: calc(100% + ( 2 * var(--bdr)));
  top: calc(var(--bdr) * -1);
  left: calc(var(--bdr) * -1);
  background-color: red;
  opacity: 0.6;
  z-index: 2;
}
<div>
  Test
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...