Затемнить цвет контейнера в css
Мне нужно что бы я задавал цвет в inline стилях и при наведении на контейнер он ставал темнее в зависимости от цвета.
Пока что у меня только такое вышло:
.example {
width: 200px;
height: 200px;
margin: 15px;
}
.example:hover {
cursor: pointer;
background-color: #6c9721; /* не понимаю почему здесь это не сработало */
}
<div class='example' style="background-color: #7db122"></div>
<div class='example' style="background-color: #4cb1ca"></div>
Буду благодарен, если поможете.
Ответы (2 шт):
Автор решения: Алис
→ Ссылка
Советую вам для этого использовать свойство filter, оно отлично подходит для таких ситуаций.
.example {
width: 200px;
height: 200px;
margin: 15px;
}
.example:hover {
cursor: pointer;
filter: brightness(70%);
}
<div class='example' style="background-color: #7db122"></div>
<div class='example' style="background-color: #4cb1ca"></div>
Автор решения: Инквизитор
→ Ссылка
Чтобы затемнение а) зависело от цвета само, и не пришлось задавать его для каждого цвета и б) не влияло на элементы внутри блоков, надо как-то влиять на сам фон. Вариант - использовать псевдоэелемент:
.example {
width: 200px;
height: 200px;
margin: 15px;
color: white;
position: relative;
}
.example * {
z-index: 1;
position: relative;
}
.example:before {
content: '';
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: transparent;
z-index: 0;
transition-duration: 0.5s;
}
.example:hover:before {
background-color: rgba(0, 0, 0, 0.25);
}
<div class='example' style="background-color: #7db122"><span>Text</span></div>
<div class='example' style="background-color: #4cb1ca"><span>Text</span></div>