실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 UI/UX 꿀팁

링크 밑줄이 글자에 붙어 답답할 때, text-underline-offset으로 다듬는 법

본문 링크 밑줄이 글자 바닥에 딱 붙어 답답해 보인다면, 밑줄을 지우기보다 text-underline-offset과 text-decoration-thickness로 간격과 두께만 조정하는 편이 낫습니다.
CSS 몇 줄이면 되고, 링크인지 알아보기 쉬운 장점은 그대로 남습니다.

💡 밑줄을 그냥 없애면 안 되나요?

리뉴얼 상담을 하다 보면 "밑줄이 촌스러워서 지워 달라"는 요청을 자주 받습니다. 그런데 본문 속 링크에서 밑줄을 빼고 색만 다르게 두면, 색 구분이 어려운 분이나 햇빛 아래에서 휴대폰을 보는 분은 어디가 링크인지 알기 어렵습니다. 웹 접근성 기준(WCAG)도 색만으로 정보를 구분하지 말라고 권합니다. 그래서 밑줄은 두고 모양을 다듬는 쪽을 추천합니다.

1. 간격과 두께를 em 단위로 조정하기

text-underline-offset은 밑줄을 글자에서 얼마나 띄울지, text-decoration-thickness는 밑줄 두께를 정합니다. px 대신 em으로 주면 제목처럼 글자가 커지는 곳에서도 비율이 자연스럽게 따라갑니다.

/* 본문 링크 밑줄 다듬기 */
.post a {
  color: #cc2b2b;
  text-decoration-line: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.25em;
  text-decoration-color: rgba(204, 43, 43, 0.4);
}
.post a:hover {
  text-decoration-color: currentColor;
}

밑줄 색을 글자보다 옅게 두고 마우스를 올렸을 때만 진하게 바꾸면, 평소에는 차분하고 누를 때는 반응이 분명해집니다. 사파리 일부 버전에서는 text-decoration 단축 속성 안에 넣은 두께가 무시되는 경우가 있어서, 위처럼 속성을 하나씩 나눠 적는 편이 안전합니다.

2. 두 줄로 넘어가는 링크에 밑줄 애니메이션 넣기

메뉴나 카드 제목에 밑줄이 왼쪽부터 그어지는 효과를 넣을 때 ::after로 선을 만들면, 링크가 두 줄로 넘어가는 순간 마지막 줄에만 선이 생깁니다. 배경 그라디언트로 그리면 줄마다 따라가서 이 문제가 없습니다.

/* 줄바꿈돼도 줄마다 밑줄이 그어짐 */
.card-title a {
  text-decoration: none;
  background: linear-gradient(currentColor, currentColor)
    0 100% / 0 1px no-repeat;
  transition: background-size 0.3s;
}
.card-title a:hover,
.card-title a:focus-visible {
  background-size: 100% 1px;
}

:focus-visible을 같이 적어 두면 키보드로 이동하는 방문자에게도 같은 효과가 보입니다.

3. 어디에 어떤 방식을 쓸지

위치추천 방식
본문 속 링크밑줄 유지, 간격·두께·색만 조정
상단 메뉴평소 밑줄 없음, hover·현재 페이지 표시
카드·목록 제목배경 그라디언트 밑줄 애니메이션
버튼형 링크밑줄 없이 버튼 모양으로 구분

적용한 뒤에는 실제 휴대폰에서 한글 본문 링크를 한 번 확인해 보세요. 폰트마다 기본 밑줄 위치가 달라서, 같은 값이라도 나눔고딕과 Pretendard에서 간격이 조금씩 다르게 보입니다.

"밑줄 하나도 읽기 편해야 누르게 됩니다."

나눔웹은 리뉴얼할 때 링크·버튼·메뉴의 상태 표시를 따로 정리해
방문자가 어디를 눌러야 할지 헷갈리지 않도록 맞춥니다.


List of Articles
번호 분류 제목 글쓴이
» UI/UX 링크 밑줄이 글자에 붙어 답답할 때, text-underline-offset으로 다듬는 법 나눔웹
19 UI/UX 고정 헤더에 제목이 가려질 때, scroll-margin-top으로 앵커 맞추는 법 나눔웹
18 UI/UX 폼 에러가 입력 전에 뜨는 문제, :user-invalid로 고치는 법 나눔웹
17 UI/UX 문의란이 내용만큼 늘어나게, CSS field-sizing으로 맞추는 법 나눔웹
16 UI/UX 스켈레톤 로딩 화면 만들기, 빈 화면 대신 회색 자리 표시로 기다림 줄이는 법 나눔웹
15 UI/UX FAQ 아코디언 만들기, details와 summary 태그로 스크립트 없이 접고 펴는 법 나눔웹
14 UI/UX 404 에러 페이지 만들기, 방문자를 놓치지 않는 구성과 상태 코드 확인법 나눔웹
13 UI/UX 화면 애니메이션 줄이기 설정, prefers-reduced-motion으로 대응하는 법 나눔웹
12 UI/UX 문의 폼 중복 접수 막는 법, 전송 버튼 연타와 새로고침 재전송 정리 나눔웹
11 UI/UX 문의 폼 placeholder를 라벨 대신 쓰면 생기는 문제와 label 배치하는 법 나눔웹
10 UI/UX 모바일 버튼이 잘 안 눌린다면? 터치 영역 44px 기준과 padding으로 넓히는 법 나눔웹
9 UI/UX 버튼 클릭 테두리(outline), 지우지 말고 :focus-visible로 정리하는 법 나눔웹
8 UI/UX 팝업 띄울 때마다 화면이 덜컹! '스크롤바 밀림 현상' 1줄 해결법 나눔웹
7 UI/UX 쇼핑몰 결제 금액이 덜덜 떨린다면? '숫자 폭 고정' 타이포그래피 꿀팁 나눔웹
6 UI/UX 투박한 파란색 체크박스는 그만! 단 1줄로 우리 회사 컬러 입히기 나눔웹
5 UI/UX 1%의 디테일이 브랜딩을 완성합니다! '텍스트 드래그 색상' 바꾸기 나눔웹
4 UI/UX 애플(Apple) 사이트처럼 고급스러운 '반투명 유리' 메뉴 만드는 법 나눔웹
3 UI/UX 상단 메뉴에 제목이 가려진다고요? '부드러운 스크롤' 마법의 2줄 나눔웹
2 UI/UX 레이아웃을 망치는 긴 글, 예쁘게 '...'으로 자르는 마법의 CSS 나눔웹
1 UI/UX 모바일에서 버튼 누를 때 생기는 촌스러운 '회색 박스' 없애는 법 나눔웹
Board Pagination Prev 1 Next
/ 1
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4