HTML에서 밑줄 긋는 법
방법은 두 가지예요. <u> 태그, 또는 CSS 속성 text-decoration: underline이에요. 둘 다 같은 선을 그어요.
밑줄의 문제는 세 번째 줄에 있어요. 독자는 밑줄이 있는 텍스트를 링크로 여기고 클릭해요. 일반 텍스트에는 분명한 이유가 있을 때만 밑줄을 그으세요.
u 태그의 의미
<u>는 범용 "밑줄" 버튼이 아니에요. 현재 HTML에서는 명시되지 않은 주석이 달린 텍스트를 뜻해요. "여기 뭔가 특별한 게 있다"고 표시하되 그게 무엇인지는 말하지 않는 거예요. 실제로 흔히 쓰는 경우는 이래요.
- 워드 프로세서처럼(주로 빨간 물결선으로) 맞춤법 오류를 표시할 때,
- 중국어 텍스트에서 고유 명사를 표시할 때. 그곳의 조판 관례예요.
강조에는 <em>이나 <strong>을 쓰고(굵게 참고), 책 제목에는 <cite>를 쓰세요. 모양만 원한다면 CSS를 쓰세요.
취소선: s와 del
HTML에는 텍스트에 취소선을 긋는 태그가 두 개 있고, 뜻이 서로 달라요.
| 태그 | 의미 | 주요 용도 |
|---|---|---|
<s> | 더 이상 정확하지 않거나 관련 없지만 맥락을 위해 남김 | 이전 가격, 매진된 티켓 종류 |
<del> | 문서에서 삭제됨 | 수정 내역, 변경 기록, 할 일 목록의 완료 항목 |
ins와 del로 수정 내역 표시하기
<ins>는 <del>의 짝으로, 추가된 텍스트를 표시해요. 브라우저는 기본적으로 밑줄을 그어요. 둘 다 datetime(변경된 시각)과 cite(변경 이유를 설명하는 URL)를 받아요.
이 빨간색과 초록색 스타일이 익숙한 diff의 모습이에요. ins에 text-decoration: none을 주면 기본 밑줄이 사라져서 링크처럼 보이지 않아요.
CSS로 밑줄과 취소선
text-decoration은 어떤 요소에든 시각적인 부분을 맡아요. 색과 스타일을 받고, 두께는 text-decoration-thickness로 정해요. 순전히 장식용 선에는 이게 맞는 도구예요.
링크 밑줄 없애기, 밑줄 간격, 그 밖의 text-decoration 세부 사항은 CSS 밑줄 페이지에 있어요.
접근성
<s>, <del>, <ins>에 대한 스크린 리더 지원은 제각각이에요. 삭제나 삽입이라고 알려 주는 것도 있지만 많은 스크린 리더가 일반 텍스트로 읽어서, 듣는 사람은 어느 쪽이 현재 가격인지 알 수 없이 "가격 49달러 29달러"로 듣게 될 수 있어요. 차이가 중요하다면 말로도 전하세요. 예를 들어 화면에는 숨기고 소리로만 읽히는 텍스트를 쓰거나, 그냥 "원래 29"라고 쓰세요.
자주 하는 실수
- 링크가 아닌 텍스트에 밑줄을 그음. 독자가 클릭하려고 해요. 강조하려면 대신 굵게, 색, 배경을 쓰세요.
- 강조에
<u>를 씀.<em>이나<strong>을 쓰세요. <strike>를 씀. 더 이상 쓰지 않는 태그예요.<s>,<del>,text-decoration: line-through를 쓰세요.- 문서 이력에서 삭제된 내용에
<s>를 씀. 그건<del>이고, 언제 삭제했는지도 기록할 수 있어요. - 선만으로 의미를 전하려 함. 많은 스크린 리더가 선을 알려 주지 않아요.
자주 묻는 질문
HTML에서 밑줄은 어떻게 긋나요?
<u>로 감싸거나 CSS에서 text-decoration: underline을 적용하세요. <u>는 맞춤법 오류 표시처럼 고유한 의미가 있을 때만 쓰고, 순전히 시각적인 밑줄에는 <span>이나 요소 자체에 CSS를 쓰세요.
HTML에서 취소선은 어떻게 긋나요?
이전 가격처럼 더 이상 정확하지 않은 텍스트에는 <s>를, 수정하면서 삭제한 텍스트에는 <del>을 쓰세요. 둘 다 텍스트 가운데에 줄을 그어요. CSS에서는 text-decoration: line-through가 시각적으로 같은 일을 해요.
<u> 태그는 폐기되었나요?
아니요. <u>는 HTML 4에서 폐기되었지만 HTML5에서 새로운 의미로 돌아왔어요. 맞춤법 오류나 중국어 텍스트의 고유 명사처럼 텍스트가 아닌 주석이 달린 텍스트를 뜻해요. 올바른 태그지만 알맞은 선택인 경우는 드물어요.
<strike> 태그는 어떻게 되었나요?
<strike>는 더 이상 쓰지 않는 태그예요. 브라우저는 아직 취소선으로 그리지만 올바른 HTML이 아니에요. 의미에 따라 <s>나 <del>을 쓰거나 text-decoration: line-through를 쓰세요.
<s>와 <del>은 무엇이 다른가요?
<s>는 취소선을 그은 가격처럼 더 이상 관련이 없거나 맞지 않지만 맥락을 위해 남겨 둔 텍스트를 표시해요. <del>은 문서에서 삭제된 텍스트를 표시하고, 대체한 내용을 보여 주는 <ins>와 함께 쓰는 경우가 많으며, datetime과 cite 속성을 가질 수 있어요.