Etc2

[CSS] 선택자(Selector) - 의사요소선택자, 구조선택자, 부정선택자

ㅣ굴굴ㅣ 2020. 2. 24. 21:37
반응형

의사요소선택자

<html>
    <head>
        <style>
            h1:before{
                content:'재밌는 ';
                color:red;
            }
            h1:after{
                content:' 선택자탐구 ';
                color:blue;
            }
        </style>
    </head>
    <body>
        <h1>의사요소 선택자</h1>
    </body>
</html>

<h1>의사요소 선택자</h1> 에서 <h1>은 시작태그, </h1>은 종료태그, 그 안에 "의사요소 선택자"라는 글씨는 content입니다. :before라는 의사요소선택자는 이 content 앞에 줄 수 있는 스타일입니다. 이는 글씨로 보여질 뿐 html상으로 글씨가 아니고 CSS상 스타일이기 때문에 마우스로 드래그해도 선택이 되지 않습니다.

 

주의할 점은 :(콜론)으로 된 것들은 붙여서 써야 합니다. 띄어서 쓰면 제대로 나타나지 않을 것입니다.

<html>
    <head>
        <style>
            h1:before{
                content:' ';
                display:inline-block;
                width:15px
                height:15px;
                background-color:red;
                margin-right:20px;
            }
        </style>
    </head>
    <body>
        <h1>의사요소 선택자</h1>
    </body>
</html>

그렇다면 이번에는 "재밌는" 이라는 글씨가 아닌 빨간 사각형을 넣어보고 싶다면, content:' ' 이렇게 놓고(따옴표를 넣는 이유는 content라는 공간을 일단 만들어야 하기 때문입니다. 단지 content내용에 글씨만 넣지 않았을 뿐)

이런 before와 after 를 이용해서 굉장히 다양한 모양을 만들어낼 수 있는 중요한 선택자입니다.

 

구조선택자

<html>
    <head>
        <style>
           li:first-child{
              text-decoration:underline;
           }
        </style>
    </head>
    <body>
        <h1>의사요소 선택자</h1>
        <ul>
           <li>메뉴1</li>  -------------- 첫째
           <li>메뉴2</li>  -------------- 둘째
           <li>메뉴3</li> -------------- 셋째
           <li>메뉴4</li> -------------- 넷째
        </ul>
    </body>
</html>

리스트 태그 중 첫번째 리스트에만 스타일을 주고 싶다면, :first-child 선택자를 사용하면 됩니다. : (콜론표시)가 나오면 반드시 붙여서 써야 합니다. 정리해보면 ul태그의 자식들 중 첫째에만 스타일을 주고 싶을 때 사용하는 스타일 선택자가 바로 :first-child 선택자입니다.

 

첫째는 --->      :firstchild{   }

막내는 --->      :last-child{   }

둘째는 --->      :nth-child(2){   }

셋째는 --->      :nth-child(3){   }

이런식으로 적용됩니다.

 

짝수번째마다 지정 --->      :nth-child(2n){   }

홀수번째마다 지정 --->      :nth-child(2n+1){   }

(n에 0부터 들어갈 수 있다고 생각하면 됩니다.)

 

첫번째부터 세번째까지 지정 --->      :nth-child(-n+3){   }

네번째 이상 --->      :nth-child(n+4){   }

 

부정선택자

<html>
    <head>
        <style>
            h1{
              color:black;
            }
            :not(h1){
              color:red;
            }
        </style>
    </head>
    <body>
        <h1>의사요소 선택자</h1>
        <ul>
           <li>메뉴1</li>  -------------- 첫째
           <li>메뉴2</li>  -------------- 둘째
           <li>메뉴3</li> -------------- 셋째
           <li>메뉴4</li> -------------- 넷째
        </ul>
    </body>
</html>

부정선택자는 특정 부분 빼고 나머지는 모두 같은 스타일을 적용할 때 사용하는 선택자입니다. 위 예시에서 h1을 뺀 나머지는 모두 색상을 빨간색으로 바꿔야 할 경우 :not(h1){   } 의 스타일을 적용하시면 됩니다.

반응형