CodeGym /행동 /Python SELF KO /CSS에서 속성 선택자

CSS에서 속성 선택자

Python SELF KO
레벨 30 , 레슨 3
사용 가능

1. 속성 선택자 종류

CSS의 속성 선택자는 id, class, name, type 등과 같은 속성 값을 기준으로 HTML 요소를 선택할 수 있게 해줘. 이 선택자는 스타일을 지정할 때 특히 폼 요소나 링크처럼 고유 속성을 가진 요소를 지정하는 데 유용해. 이번 글에서 다양한 속성 선택자와 그 사용법을 살펴보자.

속성 선택자는 속성의 존재 여부, 특정 값 또는 값의 일부를 기준으로 요소를 선택할 수 있도록 여러 카테고리로 나뉘어. 주요 속성 선택자의 종류는 다음과 같아:

  1. 속성 선택자: 값에 상관없이 특정 속성이 있는 요소를 선택해.
  2. 속성 값 선택자: 지정된 값과 동일한 값을 가진 속성이 있는 요소를 선택해.
  3. 시작 값 선택자: 속성 값이 특정 접두사로 시작하는 요소를 선택해.
  4. 끝 값 선택자: 속성 값이 특정 접미사로 끝나는 요소를 선택해.
  5. 값 포함 선택자: 속성 값에 특정 문자열이 포함된 요소를 선택해.
  6. 공백으로 구분된 값 선택자: 공백으로 구분된 특정 단어를 포함하는 속성 값을 가진 요소를 선택해.
  7. 하이픈으로 구분된 속성 선택자: 속성 값이 특정 단어로 시작하고 하이픈으로 구분된 경우에 선택해.

2. 속성 선택자 (Attribute Selector)

속성 선택자는 값과 상관없이 특정 속성이 존재하는 요소를 선택해. 이 선택자는 특정 속성을 가진 모든 요소를 선택해야 할 때 유용해.

CSS

input[type] {
  border: 1px solid black;
}
HTML

<input type="text">
<input type="password">
<input type="email">
<input>

이 예제에서 type 속성이 있는 모든 <input> 요소가 속성 값과 상관없이 검은색 테두리를 얻게 돼.

3. 속성 값 선택자

속성 값 선택자는 특정 값과 같은 값을 가진 속성이 있는 요소를 선택해. 이를 사용해 특정 값의 속성을 가진 요소들만 선택할 수 있어, 예를 들어 특정 텍스트 상자나 새 탭에서 열리는 링크를 선택할 때 유용해.

HTML
    
input[type="text"] {
  background-color: #f0f0f0;
}
    
  
CSS
    
<input type="text">
<input type="password">
<input type="email">
    
  

여기서 텍스트 상자 <input type="text"> 만이 밝은 회색 배경을 가지게 돼.

4. 속성 시작 값 선택자

속성 시작 값 선택자는 속성 값이 특정 접두사로 시작하는 요소를 선택해. 접두사는 ^= 기호 다음에 지정돼. 이 선택자는 특정 사이트로 연결되는 모든 링크를 선택할 때 유용해.

HTML
    
a[href^="https://example.com"] {
  color: green;
}
    
  
CSS
    
<a href="https://example.com/page1">example.com 링크</a>
<a href="https://another.com">다른 링크</a>
    
  

첫 번째 링크는 "https://example.com" 으로 시작하기 때문에 초록색으로 표시돼.

5. 속성 끝 값 선택자

속성 끝 값 선택자는 속성 값이 특정 접미사로 끝나는 요소를 선택해. 접미사는 $= 기호 다음에 지정돼. 이 선택자는 특정 파일 형식, 예를 들어 .png 이미지를 선택할 때 유용해.

HTML
    
img[src$=".png"] {
  border: 2px solid blue;
}
    
  
CSS
    
<img src="image1.png" alt="이미지 1">
<img src="image2.jpg" alt="이미지 2">
    
  

여기서 .png 확장자를 가진 이미지만 파란색 테두리를 얻게 돼.

6. 속성 값 포함 선택자

속성 값 포함 선택자는 속성 값에 특정 문자열이 포함된 요소를 선택해. 문자열은 *= 기호 다음에 지정돼. 이 선택자는 속성 값에 특정 부분을 포함하는 요소를 선택해야 할 때 유용해, 예를 들어 특정 섹션으로 연결되는 링크.

HTML
    
a[href*="section"] {
  font-weight: bold;
}
    
  
CSS
    
<a href="https://example.com/section1">섹션 1로 링크</a>
<a href="https://example.com/about">소개</a>
<a href="https://example.com/section2">섹션 2로 링크</a>
    
  

"section"href 에 포함하는 링크만 굵은 글씨체로 표시돼.

7. 공백으로 구분된 값 선택자

공백으로 구분된 값 선택자는 공백으로 분리된 특정 단어를 포함하는 속성 값을 가진 요소를 선택해. ~= 기호를 사용해. 이 선택자는 여러 값으로 구성된 속성을 가진 요소를 선택할 때, 예를 들어 특정 클래스를 가진 요소를 선택할 때 유용해.

HTML
    
[class~="featured"] {
  background-color: yellow;
}
    
  
CSS
    
<div class="featured item">"featured" 클래스가 포함된 요소</div>
<div class="item">일반 요소</div>
<div class="highlight featured">"featured" 클래스를 포함하는 다른 요소</div>
    
  

featured 를 클래스 목록에 포함하는 요소만 노란색 배경색을 얻게 돼.

8. 하이픈으로 구분된 속성 선택자

하이픈으로 구분된 속성 선택자는 속성 값이 특정 값으로 시작하고 하이픈으로 구분된 경우에 요소를 선택해. |= 기호를 사용해. 이 선택자는 언어 속성 lang 값을 가진 요소를 선택할 때 유용해.

HTML
    
[lang|="en"] {
  color: blue;
}
    
  
CSS
    
<p lang="en">영어 텍스트</p>
<p lang="en-us">미국 영어 텍스트</p>
<p lang="fr">프랑스어 텍스트</p>
    
  

여기서 lang 속성이 "en" 또는 "en-" 로 시작하는 요소만 파란색으로 표시돼.

9. 다양한 속성 선택자의 예시

아래는 다양한 속성 선택자의 사용을 보여주는 HTML과 CSS 예제야.

HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>CSS 속성 선택자 예시</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<input type="text" placeholder="텍스트 입력창">
<input type="password" placeholder="비밀번호">
<input type="email" placeholder="이메일">

<a href="https://example.com/page1">example.com 링크</a>
<a href="https://example.com/section2">섹션 링크</a>

<img src="image.png" alt="PNG 이미지">
<img src="photo.jpg" alt="JPG 이미지">

<div class="featured item">"featured" 클래스가 포함된 요소</div>
<div class="item">일반 요소</div>
<div class="highlight featured">"featured" 클래스를 포함하는 다른 요소</div>

<p lang="en">영어 텍스트</p>
<p lang="en-us">미국 영어 텍스트</p>
<p lang="fr">프랑스어 텍스트</p>
</body>
</html>
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>CSS 속성 선택자 예시</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<input type="text" placeholder="텍스트 입력창">
<input type="password" placeholder="비밀번호">
<input type="email" placeholder="이메일">

<a href="https://example.com/page1">example.com 링크</a>
<a href="https://example.com/section2">섹션 링크</a>

<img src="image.png" alt="PNG 이미지">
<img src="photo.jpg" alt="JPG 이미지">

<div class="featured item">"featured" 클래스가 포함된 요소</div>
<div class="item">일반 요소</div>
<div class="highlight featured">"featured" 클래스를 포함하는 다른 요소</div>

<p lang="en">영어 텍스트</p>
<p lang="en-us">미국 영어 텍스트</p>
<p lang="fr">프랑스어 텍스트</p>
</body>
</html>
CSS

/* 속성 선택자 */
input[type] {
  border: 1px solid black;
}

/* 속성 값 선택자 */
input[type="text"] {
  background-color: #f0f0f0;
}

/* 시작 값 선택자 */
a[href^="https://example.com"] {
  color: green;
}

/* 끝 값 선택자 */
img[src$=".png"] {
  border: 2px solid blue;
}

/* 값 포함 선택자 */
a[href*="section"] {
  font-weight: bold;
}

/* 공백으로 구분된 값 선택자 */
[class~="featured"] {
  background-color: yellow;
}

/* 하이픈으로 구분된 속성 선택자 */
[lang|="en"] {
  color: blue;
}
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION