[CSS] 10-2. 속성 선택자

4 minute read


10-2. 속성 선택자

속성 선택자는 태그 안에서 사용하는 속성값에 따라 요소를 선택하는 역할을 합니다.


특정 속성이 있는 요소를 선택하는 [속성] 선택자


HTML 태그를 작성할 때 사용하는 속성값에 따라 원하는 요소를 선택할 수 있도록 하는 것이 [속성] 선택자이고, 대괄호([ ]) 사이에 원하는 속성을 입력합니다.

예를 들어 a 요소 중 href 속성이 있는 요소를 선택하려면 다음과 같이 작성합니다.

a[href]{ ...}

👍 예시

	 a[href] {
		 background:yellow;
		 border:1px solid #ccc;
		 font-weight:normal;
	 }
...
	<ul>
		<li><a>메인 메뉴 : </a></li>
		<li><a href="#">메뉴 1</a></li>
		<li><a href="#">메뉴 2</a></li>
		<li><a href="#">메뉴 3</a></li>
		<li><a href="#">메뉴 4</a></li>
	</ul>

image-20210728132606558


특정 속성값이 있는 요소를 선택하는 [속성 = 속성값] 선택자


[속성 = 속성값] 선택자는 주어진 속성과 속성값이 일치하는 요소를 찾아 스타일을 적용합니다.

예를 들어 a 요소 중에서 target 속성값이 ‘_blank’ 인 것만 선택하고 싶다면 다음과 같이 작성합니다.

a[target = _blank]

👍 예시

	a[target="_blank"] {
	 padding-right:30px;
	 background:url(images/newwindow.png) no-repeat center right;
	}
...
	<ul>
		<li><a href="hhttps://html.spec.whatwg.org" target="_blank">HTML</a></li>
		<li><a href="https://www.w3.org/TR/selectors">CSS Selector Level 3</a></li>
		<li><a href="https://www.w3.org/TR/css3-mediaqueries">미디어쿼리</a></li>		
	</ul>

image-20210728132623960


여러 값 중에서 특정 속성값이 포함된 속성 요소를 선택하는 [속성 ~= 값] 선택자


[속성 ~= 값] 선택자는 여러 속성값 중에서 해당 속성값이 포함된 요소를 선택합니다. 이 선택자는 속성이 하나면서 속성값이 여러 개일 때 특정 속성값을 찾는데 편리합니다.

예를 들어 하나의 요소에 클래스 스타일을 여러 개 적용할 수 있는데, 그 중에 button 스타일이 있는 요소를 찾으려면 다음과 같이 작성합니다.

[class ~= button] { ...}

주의 사항

[속성 ~= 값] 선택자는 속성값과 정확하게 일치하는 요소만 선택합니다.

예를 들어 위의 예시에서 속성값이 button, flat button인 요소에는 적용되지만, buttons, flat-button 인 요소에는 적용되지 않습니다.

👍 예시

		a[class ~="button"] {           
      box-shadow:rgba(0,0,0,0.5) 4px 4px; /* 그림자 지정 */
      border-radius: 5px;  /* 테두리를 둥글게 */
      border:1px solid #222;
		}
</style>
...
	<ul>
		<li><a href="#" class="flat">메뉴 1</a></li>
		<li><a href="#" class="flat">메뉴 2</a></li>
		<li><a href="#" class="button">메뉴 3</a></li>
		<li><a href="#" class="flat button" >메뉴 4</a></li>
	</ul>

image-20210728132529906


특정 속성값이 포함된 속성 요소를 선택하는 [속성 |= 값] 선택자


[속성 = 값] 선택자는 특정 속성값이 포함된 속성에 스타일을 적용합니다. 앞에서 다룬 [속성 ~= 값] 선택자와 다르게 지정한 값과 정확하게 일치하거나 지정한 값을 포함해서 하이픈(-)으로 연결된 단어도 선택합니다.

예를 들어 title 속성값에 us라는 글자를 포함하는 속성값이 있는 a 요소를 찾는다면 다음과 같이 작성합니다.

a[title |= us]{ ...}

👍 예시

	a[title |= "us"] {  /* 속성값이 "us"이거나 "us-"로 시작하는 요소를 찾는 선택자 */
		background: url(images/us.png) no-repeat left center;
	}
	a[title |= "jap"] {  /* 속성값이 "jap"이거나 "jap-"로 시작하는 요소를 찾는 선택자 */
		background: url(images/jp.png) no-repeat left center;
	}
	a[title |= "chn"] {  /* 속성값이 "chn"이거나 "chn-"로 시작하는 요소를 찾는 선택자 */
		background: url(images/ch.png) no-repeat left center;
	}
</style>
...
	<ul>
		<li>외국어 서비스 : </li>
		<li><a href="#" title="us-english">영어</a></li>
		<li><a href="#" title="ja">일본어</a></li>
		<li><a href="#" title="chn">중국어</a></li>
	</ul>

image-20210729110559730


특정 속성값으로 시작하는 속성 요소를 선택하는 [속성 ^= 값]


속성값이 정확하게 일치하지 않더라도 지정한 속성값으로 시작하는 요소를 찾으려면 [속성 ^= 값] 선택자를 사용합니다.

예를 들어 title 속성값이 eng로 시작하는 a 요소를 찾는다면 다음과 같이 작성합니다.

a[title ^= eng]{ ...}

👍 예시

		a[title ^="eng"] {  /* 속성값이 "eng"로 시작하는 요소를 찾는 선택자 */
			background: url(images/us.png) no-repeat left center;
			padding: 5px 25px;
		}
		a[title ^="jap"] {  /* 속성값이 "jap"로 시작하는 요소를 찾는 선택자 */
			background: url(images/jp.png) no-repeat left center;
			padding: 5px 25px;
		}
		a[title ^="chin"] {  /* 속성값이 "chn"로 시작하는 요소를 찾는 선택자 */
			background: url(images/ch.png) no-repeat left center;
			padding: 5px 25px;
		}
</style>
...
	<ul>
		<li>외국어 서비스 : </li>
		<li><a href="#" title="english">영어</a></li>
		<li><a href="#" title="japanese">일본어</a></li>
		<li><a href="#" title="chinese">중국어</a></li>
	</ul>

image-20210729111149074


특정한 값으로 끝나는 속성의 요소를 선택하는 [속성 $= 값] 선택자


[속성 ^= 값] 선택자가 속성값으로 시작하는 요소를 선택했다면, [속성 $= 값] 선택자는 지정한 속성값으로 끝나는 요소를 선택합니다.

예를 들어 링크한 파일 이름의 마지막 단어가 xls 인 요소를 찾는다면 다음과 같이 작성합니다.

[href $= xls]{ ...}

👍 예시

	a[href$=hwp] { /* 연결한 파일의 확장자가 hwp인 링크 */
		background: url(images/hwp_icon.gif) center right no-repeat; /* 배경으로 hwp 아이콘 표시 */
		padding-right: 25px; /* 아이콘을 표시할 수 있도록 오른쪽에 25px 여백 */
	}

	a[href$=xls] { /* 연결한 파일의 확장자가 hwp인 링크 */
		background: url(images/excel_icon.gif) center right no-repeat; /* 배경으로 hwp 아이콘 표시 */
		padding-right: 25px; /* 아이콘을 표시할 수 있도록 오른쪽에 25px 여백 */
	}
</style>
...
	<ul>
		<li><a href="intro.hwp">hwp 파일</a></li>
		<li><a href="intro.xls">엑셀 파일</a></li>
	</ul>

image-20210729111442833


일부 속성값이 일치하는 요소를 선택하는 [속성 *= 값] 선택자


[속성 *= 값] 선택자는 속성값이 어느 위치에 있든지 지정한 속성값이 포함되어 있다면 해당 요소를 선택합니다.

예를 들어 href 속성값 중에 ‘w3’가 포함된 요소를 선택한다면 다음과 같이 작성합니다.

[href *= w3]{ ...}

👍 예시

	a[href *= "w3"] {  /* href 속성값 중에 w3가 있는 a 요소를 찾는 선택자 */ 
	 background:blue;
	 color:white;		 
	}
</style>
...
	<h1>HTML5 참고 사이트 </h1>
	<p>(아래 링크  파란색 배경의 링크는 W3C 사이트로 연결됩니다.)</p>
	<ul>
		<li><a href="https://html.spec.whatwg.org/">HTML 표준안 사이트</a></li>
		<li><a href="https://caniuse.com/">HTML 지원 여부 체크</a></li>
		<li><a href="https://www.w3.org/TR/css3-mediaqueries">미디어쿼리</a></li>		
	</ul>

image-20210729111728656



정리


종류 선택 요소 예시
[속성] 해당 속성이 있는 요소 [required]
[속성 = 값] 지정한 속성값인 요소 [target = _blank]
[속성 ~= 값] 지정한 속성값이 포함된 요소(단어별) [class ~= button]
[속성 |= 값] 지정한 속성값이 포함된 요소(하이픈 포함, 단어별) [title |= us]
[속성 ^= 값] 지정한 속성값으로 시작하는 요소 [title ^= eng]
[속성 $= 값] 지정한 속성값으로 끝나는 요소 [href $= xls]
[속성 *= 값] 지정한 속성값의 일부가 일치하는 요소 [href *= w3]

Categories: ,

Updated:

Leave a comment