Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS로 링크 스타일링하기: 기본부터 호버 효과까지

CSS를 활용하면 웹 페이지의 링크를 자유롭게 꾸밀 수 있습니다. 텍스트에 색상을 입히거나 배경을 추가하고, 글자 크기를 조절하는 것은 물론, 애니메이션 효과까지 더해 시각적으로 매력적인 링크를 만들 수 있습니다.

의사 클래스(Pseudo-class) 작성 순서

링크 관련 의사 클래스가 정상적으로 동작하려면 반드시 아래 순서대로 선언해야 합니다.

  • :link — 아직 방문하지 않은 링크
  • :visited — 사용자가 이미 방문한 링크
  • :hover — 마우스 커서를 올린 상태의 링크
  • :active — 클릭되는 순간의 링크

이 순서는 흔히 LVHA 규칙이라고 부르며, 순서가 바뀌면 일부 스타일이 덮어써져 의도대로 적용되지 않을 수 있습니다.

예제 1: 기본적인 링크 스타일링

다음 예제는 CSS로 링크에 배경색, 테두리, 호버 효과를 적용하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
<head>
<style>
p {
    margin: 25px;
}
#mod {
    padding: 10px;
    color: darkturquoise;
    border: thin solid;
    background-color: lemonchiffon;
}
#mod:hover {
    color: white;
    box-shadow: 0 0 0 1px black;
    background-color: slateblue;
}
</style>
</head>
<body>
<p>
<a href="mailto:user@example.com">데모 링크</a>
</p>
<p>
<a id="mod" href="mailto:user@example.com">수정된 데모 링크</a>
</p>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

CSS로 링크 스타일링하기: 기본부터 호버 효과까지

두 번째 링크에 마우스 커서를 올리면(:hover) 아래와 같이 배경색과 그림자 효과가 적용됩니다.

CSS로 링크 스타일링하기: 기본부터 호버 효과까지

예제 2: 버튼형 링크와 호버 애니메이션

다음 예제는 flex 레이아웃 안에서 버튼 요소와 링크를 나란히 배치하고, 호버 시 박스 그림자·윗줄 장식·글자 크기 변화를 주는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
<head>
<style>
div {
    margin: 25px;
    display: flex;
    float: left;
    border: thin solid;
    background-color: snow;
    padding: 20px;
}
body * {
    border-radius: 5%;
}
#mod {
    padding: 10px;
    color: royalblue;
    text-decoration: none;
}
#mod:hover {
    box-shadow: 0 0 10px 2px black;
    text-decoration: overline;
    font-size: 1.2em;
}
</style>
</head>
<body>
<div>
<button><a href="#">데모</a></button>
<a id="mod" href="#">데모</a>
</div>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

CSS로 링크 스타일링하기: 기본부터 호버 효과까지

두 번째 링크에 마우스 커서를 올리면 그림자가 생기고 글자 크기가 커지며 윗줄 장식이 나타납니다.

CSS로 링크 스타일링하기: 기본부터 호버 효과까지

마무리

이처럼 CSS의 의사 클래스를 활용하면 별도의 JavaScript 없이도 링크에 다양한 인터랙티브 효과를 손쉽게 구현할 수 있습니다. :link → :visited → :hover → :active 순서만 잘 지키면, 색상·배경·그림자·애니메이션 등을 자유롭게 조합해 사용자 경험을 한층 끌어올릴 수 있습니다.