фильтры цвета с прозрачностью.
Ребят, подскажите плиз:
"Кнопки при наведении подсвечиваются фильтром rgba 255 255 255 0.2, в момент нажатия затемняться 0 0 0 0.2." Как это реализовать? Сама кнопка - простой див с заданным цветом фона. Понимаю что меня нужно не цвет фона, но мне кроме как добавления элемента поверх ничего в голову не лезет( |
Цитата:
:active - нажатие |
Decode, не сможет он этого без "препроцессора". Ибо в данном случае :hover, :active будут заменять цвет, а не накладывать.
|
Но, как вариант - можно извратиться с псевдоэлементами ;)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ width: 100px; height: 50px; background-color: #321; } div:after{ display: block; width: 100%; height: 100%; content: ' '; } div:hover::after{ background-color: rgba(255,255,255,0.5); } div:active::after{ background-color: rgba(000,000,000,0.5); } </style> </head> <body> <div></div> </body> </html> |
Ааа, клаааас! спасибо) я столько раз уже встречал эти псевдоклассы before и after, но никак не могу в них до конца разобраться) Ваш вариант я тоже пробовал, только он у меня выглядел так:
div{ width: 100px; height: 50px; background-color: #321; } div:hover::after{ background-color: rgba(255,255,255,0.5); } div:active::after{ background-color: rgba(000,000,000,0.5); } Само собой ничего не сработало, а я и не понял что after нужно было перед этим тоже определить) спасибо огромное) |
Siend, ничего не нужно определять, почитайте документацию по "псевдоэлементам".
|
ну эт я не правильно выразился. Ваш код отличается от моего тем что прежде чем писать ховер:афтер, вы и для самого дива сделали афтер с указанием размером и типа display:block, под эти я и подразумевал "определять" :D
|
Siend, я вынес это отдельно, чтоб не дублировать, т.е так тоже будет работать:
div:hover::after{ display: block; width: 100%; height: 100%; content: ' '; background-color: rgba(255,255,255,0.5); } div:active::after{ display: block; width: 100%; height: 100%; content: ' '; background-color: rgba(000,000,000,0.5); } |
А, теперь понял что вы имели ввиду) Большое спасибо)
|
Часовой пояс GMT +3, время: 00:20. |