Day 4. Selecting Single Elements with ID
웹 개발을 진행하다 보면 같은 HTML 태그를 사용하는 요소들 사이에서도 특정 요소만 다르게 표현해야 하는 상황이 자주 발생한다. 오늘은 CSS 선택자의 힘을 활용해 이런 문제를 해결하는 방법에 대해 이야기해보려 한다.
h1 {
font-family: sans-serif;
text-align: center;
color: rgb(83, 75, 75);
}
p {
font-family: sans-serif;
text-align: center;
color: rgb(83, 75, 75);
}
a {
color: rgb(167, 1, 78);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
#todays-challenge {
color: rgb(170, 96, 83);
font-weight: bold;
font-size: 52px;
}
<!DOCTYPE html>
<html>
<head>
<link href="daily-challenge.css" rel="stylesheet">
<title>My Daily Challenge</title>
</head>
<body>
<h1>Hoon's challenge for Tuesday, May 6th</h1>
<p id="todays-challenge">
Learn about the basics of web development - specifically dive into HTML & CSS.
</p>
<p>
I'll achieve this goal by diving into
<a href="https://www.google.com">more learning resources</a>.
</p>
</body>
</html>
1. 선택적 스타일링의 필요성
현재 우리 페이지에는 두 개의 단락이 있고, 링크를 제외하면 정확히 동일하게 보인다. 동일한 스타일과 크기를 가지고 있다. 물론 이것도 괜찮지만, 일부 요소를 다른 평균적인 동일 유형 요소와 다르게 스타일링하고 싶은 것은 매우 일반적인 요구사항이다. 즉, 모든 단락에 모든 단락 스타일을 적용하고 싶지 않고, 일부 단락만 고유한 스타일을 가지길 원할 수 있다.
2. 현재 접근 방식의 한계
문제는 현재 CSS 코드의 P 선택자가 페이지의 모든 단락 요소를 대상으로 한다는 점이다. 이제 한 특정 단락, 정확히는 이 단락의 스타일을 변경하고 싶다. 그렇다면 어떻게 특정 단락에 대해 다른 스타일을 설정할 수 있을까?
3. 인라인 스타일의 유혹과 단점
style 속성을 다시 가져와서 이 특정 단락만 직접 타겟팅할 수 있다. 하지만 이 방법은 HTML 파일과 요소에 일부 CSS 코드를 직접 넣고, 별도의 CSS 파일에 또 다른 CSS 코드를 넣는 결과가 된다. 비록 작동하겠지만, 이런 식으로 CSS 코드를 분할하면 웹사이트와 코드베이스가 커질수록 유지보수가 더 어려워진다.
4. ID 선택자: 특정 요소 선택의 강력한 도구
다행히 CSS는 단일 요소를 선택하기 위한 다른 도구를 제공한다. 현재 모든 CSS 규칙에서 수행하고 있는 요소 유형별 선택 외에도, ID로 선택할 수 있다. HTML 요소에 고유 식별자인 ID를 부여할 수 있으며, 모든 HTML 요소는 이러한 ID를 받을 수 있다.
5. ID 작성의 모범 사례
ID 속성은 공식적으로 지원되는 속성 중 하나다. 값은 선택한 모든 고유 식별자가 될 수 있다. 예를 들어 "today's-challenge"와 같이 작성한다. 이렇게 작성하는 이유는 인간으로서 텍스트를 읽기 쉬울지 몰라도, ID로 선택할 때 코드에서 사용하기 어려울 수 있기 때문이다. 코드에서 고유 식별자를 생성할 때는 모든 소문자 단어를 사용하고 공백을 대시로 대체하는 표기법을 사용하는 것이 좋다.
6. ID 선택자 문법 마스터하기
CSS에서 ID 선택자를 사용하려면 해시(#) 기호를 추가한 다음 선택한 ID를 반복하면 된다. 해시와 ID 이름, ID 값 사이에 공백 없이 작성한다. 이것은 소위 'ID 선택자'를 생성하며, 요소 유형 선택자와 이전에 다룬 hover 의사 선택자에 이어 이것이 우리가 배우는 세 번째 유형의 선택자다.
7. ID의 고유성 원칙
중요한 점은 ID는 정말로 고유해야 한다는 것이다. 같은 ID를 다른 요소에 할당해서는 안 된다. 따라서 이 규칙은 정의상 HTML 코드에서 단 하나의 HTML 요소만 선택하고 타겟팅한다.
이런 방식으로 CSS의 강력한 선택자 시스템을 활용하면, 필요에 따라 특정 요소만 정확하게 스타일링할 수 있다. 웹 개발에서 이러한 세부적인 제어 능력은 디자인 목표를 달성하는 데 필수적이다. 전체적인 스타일 규칙과 특정 요소를 위한 규칙을 조화롭게 사용하는 것이 프로페셔널한 웹 개발자의 중요한 기술이다.
마지막으로, ID 선택자는 훌륭한 도구지만 과도하게 사용하면 CSS가 지나치게 구체적이고 재사용하기 어려워질 수 있다는 점을 기억하자. 모든 개발 도구와 마찬가지로, 적절한 상황에서 적절하게 사용할 때 가장 효과적이다.