웹 페이지의 스타일을 지정하기 위해 CSS를 사용할 때 종종 페이지의 특정 부분을 대상으로 하고 싶을 것입니다. 하나 이상의 요소를 선택할 수 있는 방법 중 하나는 ID 및/또는 클래스 속성을 사용하는 것입니다.
이 튜토리얼을 진행하면서 대화형 Codepen을 확인하고 저와 함께 플레이하세요!
ID 속성 및 CSS 선택기
태그를 사용하여 간단한 단락을 만들어 보겠습니다.
<p> Color this paragraph! </p>
ID는 고유하게 식별하기 위해 단일 요소를 추가하는 고유 식별자입니다. 규칙 id="#NAME"을 따릅니다.
이를 염두에 두고 단락에 색상을 지정하고 싶으므로 고유한 이름으로 이름을 지정하겠습니다.
<p id="paragraph-colored"> Color this paragraph! </p>
이제 ID 고유 식별자가 있으므로 동일한 ID를 다른 요소에 추가하지 않도록 해야 합니다. 브라우저는 불평하지 않지만 목적을 잃어버리고 CSS가 의도한 대로 작동하지 않을 것입니다.
ID가 있으면 CSS와 함께 해시태그 기호 #을 사용하여 ID를 선택할 수 있습니다. p 태그를 보라색으로 만들어 봅시다.
#paragraph-colored { color: purple; }
쉽죠잉? 😄
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
클래스 속성 및 해당 CSS 선택기
텍스트가 보라색으로 표시된 단락이 있습니다. 이제 단일 p 태그 아래에 많은 아보카도 이미지가 있다고 가정해 보겠습니다.
<img src="https://avatars1.githubusercontent.com/u/43709642?s=280&v=4" alt="avocado"> <img src="https://avatars1.githubusercontent.com/u/43709642?s=280&v=4" alt="avocado"> <img src="https://avatars1.githubusercontent.com/u/43709642?s=280&v=4" alt="avocado">
이 모든 아보카도 개발자를 어떻게 식별하고 선택할 수 있습니까? ID 태그는 단일 항목을 고유하게 식별하는 데 사용되기 때문에 사용할 수 없다는 것을 알고 있습니다. 여기서 class 속성이 작동합니다.
class 속성은 class="#CLASS_NAME" 규칙을 따릅니다. 많은 구성원이 한 클래스에 속할 수 있으므로 모든 아보카도 개발자는 다음과 같은 클래스를 할당할 수 있습니다.
<img src="https://avatars1.githubusercontent.com/u/43709642?s=280&v=4" alt="avocado" class="avocado-devs">
엄청난! 우리의 아보카도 이미지에는 "avocado-devs" 클래스가 할당되었습니다. 이제 간단한 점(.)으로 표시되는 CSS 클래스 선택기를 사용할 수 있습니다. 계속해서 아보카도 개발자에게 CSS 필터 속성을 추가해 보겠습니다. 우리는 그들이 밤 늦게 일한다고 가정하고 색상을 100% 반전시켜 보겠습니다.
.avocado-devs { filter: invert(100) }
클래스를 사용하여 기본적으로 그룹을 만든 다음 CSS 클래스 선택기를 사용하여 요소 그룹에 원하는 스타일을 적용할 수 있습니다.
클래스 선택기와 함께 일반 태그 선택기 사용
CSS로 클래스를 선택할 때 점 선택기와 함께 일반 태그 선택기를 사용하는 것이 더 낫다는 것을 종종 봅니다. 왜요? 더 구체적이기 때문에 선택기와 함께라면 CSS가 훨씬 더 잘 적용될 것입니다.
CSS에서는 태그 이름으로 참조하여 일반 태그 선택기를 사용합니다. 예를 들어 다음은 모두 유효한 태그 선택기입니다.
/* H1 */ h1{} /* Paragraphs */ p{ }
따라서 img
를 포함하여 이미지 선택기를 리팩토링할 수 있습니다. 일반 태그:
img.avocado-devs { filter: invert(100) }
기능은 변경되지 않았지만 코드가 커짐에 따라 이 특수성이 중요합니다. 또한 코드를 더 읽기 쉽게 만듭니다. 다른 개발자들은 avocado-devs 클래스가 이미지를 참조한다는 것을 알게 될 것입니다.
여기서는 특정 클래스 이름이 있는 이미지에만 필터를 적용하기 때문에 이것은 중요합니다. 적절한 클래스 없이 다른 아보카도 개발 이미지를 추가하면 스타일이 적용되지 않습니다. 웹 개발자로서 이러한 조건부 동작은 종종 우리가 원하는 것입니다.