[ css ] 다양한 선택자 02 ( 구조선택자 & 형태구조선택자 ) - :first-child, :nth-child(수열), :first-of-type, :nth-of-type(n)

Suji Kang·2023년 12월 21일
0

🐾 구조선택자

CSS3부터 지원하는 선택자로 특정한 위치에 있는 태그를 선택하는 선택자 ( 일반적으로 자손, 후손선택자와 함께사용 )
📌 :first-child : 부모박스 안에서 형제 관계 중에서 첫 번째에 위치하는 태그 선택
📌 :last-child : 부모박스 안에서 형제 관계 중에서 마지막에 위치하는 태그 선택

<style>
           ul{
               overflow: hidden;  
           }
           
           li{
               list-style: none; /*블릿 포인트 삭제*/
               float: left; 
               padding: 15px; 
           }
           
          li:first-child{ 
           /* 같은 부모아래에서 형제관계의 첫번째에 해당하는 요소를 선택 */
                background-color: beige;  
           }
           
           li:last-child{
           /* 부모 아래에서 형제관계의 마지막번째에 해당하는 요소를 선택*/
               background-color: antiquewhite;
           }
</style> 
  <body>
           <ul>
                <li>menu1</li>
                <li>menu2</li>
                <li>menu3</li>
                <li>menu4</li>
                <li>menu5</li>
                <li>menu6</li>
          </ul>
  </body>       
       


📌 :nth-child(수열) : 부모박스 안에서 형제 관계 중에서 "앞에서" 수열번째의 태그 선택
📌 :nth-last-child(수열) : 부모박스 안에서 형제 관계 중에서 "뒤에서" 수열번째의 태그 선택
- 형제관계의 순번째에 위치하는 요소를 선택 (1,2,3..) 2n+1(홀수) 2n(짝수)

 <style>
 			li:nth-child(2n+1){ /*홀수*/
                background-color: rgb(152, 207, 207); 
                color: chocolate;
            }
            
            li:nth-child(2n){ /*짝수*/
                background-color: rgb(230, 180, 180); 
                color: azure;
            }
            
            li:nth-child(3){
                border: 3px solid #f00;
            }
            
            li:nth-child(5) a{
                color: coral;
            }
 </style> 
   <body>
           <ul>
                <li>menu-1</li>
                <li>menu-2</li>
                <li>menu-3</li>
                <li>menu-4</li>
                <li><a href="#">menu-5</a></li>
                <li>menu-6</li>
           </ul>
   </body>       


	<style> 
 			.box:first-child{
                 background-color: rgb(153, 221, 153);
            }
    </style> 
		   <ul>
  				<li class="box">menu-1</li>
                <li class="box">menu-2</li>
                <li class="box">menu-3</li>
                <li class="box">menu-4</li>
                <li class="box"><a href="#">menu-5</a></li>
                <li class="box">menu-6</li>
           </ul>

class를 box로 준다음에 거기서 :first-child는? 연두색 첫번째인걸 확인할수있다.


🐾 형태구조선택자

일반구조 선택자와 비슷하지만 태그 형태를 구분

📌 :first-of-type : 부모박스 안에서 형제 관계 중에서 첫 번째에 위치하는 특정한 태그 선택
📌 :last-of-type: 부모박스 안에서 형제 관계 중에서 마지막에 위치하는 특정한 태그 선택

 	<style>
            h1:first-of-type{
                 background-color: rgb(245, 245, 190);
            }            
            
            h2:last-of-type{
                background-color: rgb(158, 221, 221);
            }
    </style>
    <body>
    	<div>
            <h1>header1</h1>
            <h2>header2</h2>
            <h3>header3</h3>
            <h3>header3</h3>
            <h2>header2</h2>
            <h1>header1</h1>
        </div>
     </body>   

h2 중에 last인것이 배경이 칠해진걸 확인할수있다.


📌 :nth-of-type(n) : 부모박스 안에서 형제 관계 중에서 앞에서 수열번째의 특정한 태그 선택

<style>
 			h3:nth-of-type(2){
                 border: 2px solid #f00;
            }
</style>
    <body>
    	<div>
            <h1>header1</h1>
            <h2>header2</h2>
            <h3>header3</h3>
            <h3>header3</h3>
            <h2>header2</h2>
            <h1>header1</h1>
        </div>
     </body>

h3태그중에 "2번째"가 빨강 border가 된것을 확인할수있다.


이렇게 hover를 하면 색깔이 바뀌게도 할수있다.

   /*응용*/ 
            li:nth-child(5):hover{
                 background-color: blueviolet;
            }
            li:nth-child(5):hover  a{
                 color: #fff;
            }
profile
나를위한 노트필기 📒🔎📝

0개의 댓글