Разница между псевдоклассами :target и :hover заключается в их функциях.
Псевдокласс :hover срабатывает, когда пользователь наводит курсор на определённый элемент, например, ссылку или кнопку. 3 Этот псевдокласс относится к динамическим, то есть появляется у элемента в процессе взаимодействия пользователя с веб-страницей. 2
Псевдокласс :target, в свою очередь, управляет стилем элемента, на который ведёт якорная ссылка (ссылка, которая указывает на определённый раздел или компонент на этой же странице). 3 С помощью этого псевдокласса можно стилизовать элемент, к которому перешли по ссылке, а также элементы, которые расположены в одном блоке и при нажатии на кнопку или ссылку сменяются или перемещаются (например, css-слайдер). 2
Таким образом, :hover фокусируется на интерактивном состоянии элемента при наведении курсора, а :target — на стилизации элемента в контексте перехода по ссылке.