#html #css #image #hover
Вопрос:
Я пытаюсь создать эффект наведения на изображение. Когда я зависаю, на изображении должно появиться немного темноты. Для этого я попробовал использовать свойство непрозрачности, оно работает, но не кажется таким уж хорошим или впечатляющим. Скорее, это придает легкость, а это не то, чего я хотел. Если вам интересно, какую темноту я хочу, чтобы изображение зависало, что-то вроде этого, rgba(0,0,0,0.2)
. Но как мне его использовать?
Я также поиграл с псевдо-элементом, если смогу его использовать, но ничего не смог сделать. Я знаю, что это так не сработает, но я даже сейчас не могу объяснить. Помогите мне, пожалуйста.
.box::before {
content: '';
width:100%;
height: 100%;
background: rgba(0,0,0,0,2);
}
Ниже приведен код с непрозрачностью, но я пытаюсь получить немного темноты, как я уже сказал.
.box {
width: 200px;
height: 200px;
border: 2px solid black;
margin-top: 10px;
background:url(https://r1.ilikewallpaper.net/ipad-air-wallpapers/download/4427/Green-Nature-iPad-4-wallpaper-ilikewallpaper_com_200.jpg);
}
.box:hover {
opacity:0.8;
/*rgba(0,0,0,0.2) This is needed*/
}
<div class="box">
</div>
Ответ №1:
Используйте псевдоэлемент hover
, а затем установите background
его так, как вы хотите
.box {
width: 200px;
height: 200px;
border: 2px solid black;
margin-top: 10px;
background:url(https://r1.ilikewallpaper.net/ipad-air-wallpapers/download/4427/Green-Nature-iPad-4-wallpaper-ilikewallpaper_com_200.jpg);
position:relative;
}
.box:hover:before
{
content:'';
width:100%;
height:100%;
position:absolute;
background:rgba(0,0,0,0.2);
}
<div class="box">
</div>
Ответ №2:
Вы можете использовать фильтр оттенков серого в CSS.
Что-то вроде этого:
img {
filter: grayscale(0%);
}
img:hover {
filter: grayscale(20%);
}
Узнайте больше об этом здесь: https://www.w3schools.com/cssref/css3_pr_filter.asp
Комментарии:
1. Это также может быть хорошим вариантом. Спасибо @AD-1.
2. Добро пожаловать! P.S. если вы нашли это полезным, не могли бы вы озвучить мой ответ? Я пытаюсь достичь репутации 500 😉
Ответ №3:
Вы могли бы использовать этот метод для достижения того, что вы ищете. Вы также можете добавить эффект перехода, чтобы сделать его менее внезапным.
.box {
width: 200px;
height: 200px;
border: 2px solid black;
margin-top: 10px;
background:url(https://r1.ilikewallpaper.net/ipad-air-wallpapers/download/4427/Green-Nature-iPad-4-wallpaper-ilikewallpaper_com_200.jpg);
}
.box:hover {
-webkit-filter: brightness(80%);
}
<div class="box">
</div>
Комментарии:
1. Это кажется удобным ! Спасибо