프로그래밍/html+css+js
[HTML+CSS] a 태그를 이용하여 버튼 만들기
너무 궁금해
2024. 12. 29. 10:12
이미지를 이용하지 않고 css를 이용하여 버튼 이미지 효과를 낼 수 있습니다.
|
※ 먼저 a 태그를 이용하여 링크를 만들었습니다.
<body>
<a href="https://google.com">구글홈페이지로 이동하기</a>
</body>
>>> 결과 <<<
HTML의 <a> 태그는 브라우저마다 기본적으로 설정된 유형별 CSS 스타일을 가지고 있어요.
이를 유저 에이전트 스타일시트(User Agent Stylesheet)라고 부릅니다. 아래는 대부분의 브라우저에서 <a> 태그에 기본적으로 적용되는 CSS 속성이에요.
a {
color: blue; /* 텍스트 색상: 파란색 */
text-decoration: underline; /* 밑줄 */
cursor: pointer; /* 마우스 포인터가 손가락 모양으로 변함 */
}
우리가 어떤 css속성을 설정하지 않았지만, <a>를 사용하면 파란색에 밑줄이 표시됩니다.
※ 상태별 기본 스타일
<a> 태그는 기본적으로 링크 상태에 따라 스타일이 다르게 적용됩니다.
1. 기본 상태 ( :link)
- 아직 클릭하지 않은 링크
a:link {
color: blue;
}
2. 방문한 링크 (:visited)
- 이미 방문한 링크.
a:hover {
text-decoration: underline;
}
3. 호버 상태 (:hover)
- 마우스를 링크 위에 올릴 때.
a:hover {
text-decoration: underline;
}
4. 활성 상태 (:active)
- 링크를 클릭 중인 순간.
a:active {
color: red; /* 빨간색 */
}
※ 기본 스타일 예제
<body>
<a href="#">기본 링크</a>
<a href="#" style="color: green;">스타일 덮어쓰기</a>
</body>
>>> 결과 <<<
- 첫 번째 링크는 파란색과 밑줄이 적용된 상태로 보입니다.
- 두 번째 링크는 color: green으로 기본 색상이 덮어씌워집니다.
※ 브라우저 기본 스타일 제거하기
<a> 태그의 기본 스타일을 없애려면, 아래처럼 CSS를 작성할 수 있어요
a {
color: inherit; /* 부모 요소의 텍스트 색상 상속 */
text-decoration: none; /* 밑줄 제거 */
cursor: auto; /* 포인터 모양 변경 */
}
>>> 결과 <<<
※ 버튼 스타일 만들기
css속성을 주면 버튼처럼 만들 수 있어요
a {
display: inline-block; /* 링크를 인라인 블록으로 설정하여 크기와 여백을 설정 가능하게 함 */
padding: 10px 20px; /* 내부 여백: 위아래 10px, 좌우 20px */
background-color: #007BFF; /* 배경색을 파란색 계열로 설정 */
color: white; /* 텍스트 색상을 흰색으로 설정 */
text-decoration: none; /* 링크의 밑줄을 제거 */
border-radius: 5px; /* 버튼의 모서리를 둥글게 설정 (5px 반지름) */
transition: background-color 0.3s; /* 배경색 변경에 0.3초의 전환 효과를 추가 */
}
a:hover {
background-color: #0056b3; /* 마우스를 올렸을 때 배경색을 더 어두운 파란색으로 변경 */
}
>>> 결과 <<<
둥글고 입체감 있는 버튼도 만들 수 있어요
a {
display: inline-block; /* 버튼 크기 지정 가능 */
padding: 12px 24px; /* 내부 여백: 위아래 12px, 좌우 24px */
background-color: #28a745; /* 녹색 배경 */
color: white; /* 흰색 텍스트 */
text-decoration: none; /* 밑줄 제거 */
border-radius: 50px; /* 둥근 버튼 모양 */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 입체감을 위한 그림자 */
transition: transform 0.2s, box-shadow 0.2s; /* 클릭 시 애니메이션 효과 */
}
a:hover {
background-color: #218838; /* 호버 시 더 진한 녹색 */
box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15); /* 호버 시 그림자 강조 */
}
a:active {
transform: scale(0.95); /* 클릭 시 버튼이 살짝 작아짐 */
}
>>> 결과 <<<
그라데이션 버튼도 만들 수 있어요
a {
display: inline-block; /* 버튼 크기 설정 */
padding: 12px 24px; /* 내부 여백: 위아래 12px, 좌우 24px */
background: linear-gradient(45deg, #ff6f61, #d84e2a); /* 45도 각도로 그라데이션 배경 */
color: white; /* 흰색 텍스트 */
text-decoration: none; /* 밑줄 제거 */
border: none; /* 테두리 제거 */
border-radius: 8px; /* 둥근 모서리 */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 입체감을 주는 그림자 */
font-weight: bold; /* 굵은 글씨 */
cursor: pointer; /* 마우스 포인터가 손 모양으로 변경 */
transition: transform 0.2s, box-shadow 0.2s, background 0.3s; /* 클릭, 그림자 및 배경 변화에 애니메이션 추가 */
}
a:hover {
background: linear-gradient(45deg, #d84e2a, #ff6f61); /* 호버 시 그라데이션 방향 반전 */
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); /* 호버 시 그림자 강조 */
}
a:active {
transform: scale(0.98); /* 클릭 시 버튼이 살짝 작아짐 */
}
>>> 결과 <<<