본문 바로가기
HTML CSS JS

CSS 선택자

by wanttosleep1111 2023. 1. 5.

CSS 선택자

 

1. 선택자

선택자 기호 가중치
전체 선택자 * 0
태그 선택자 태그이름 1
클래스 선택자 .클래스이름 10
아이디 선택자 #아이디이름 100
계층 선택자 기호
자손 선택자 기준 선택
자식 선택자 기준>선택
후행 선택자 기준~선택
근접 후행 선택자 기준+선택

 

① 전체 선택자 (*) : 모든 요소를 선택

 

② 태그 선택자 (태그이름) 

 

③ 클래스 선택자 (.클래스이름) : 중복 가능, 재사용성이 뛰어남

 

④ 아이디 선택자 (#아이디이름) : 중복 불가능, 한 문서당 그 아이디는 1번만 사용 가능

(로고, 검색창, 상단메뉴바 등 고유 디자인에 사용)

※ 한 문서에서 1번 이상 사용할 경우 자체에서는 오류가 없으나 웹 표준 테스트에서 오류 발생

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

        /* (1) 전체선택자 : 기호 */
       

        *{
            color : salmon
        }

        /* (2) 태그 선택자 : 태그 이름 */

        li{
            color: blue;
        }

        /* (3) 클래스 선택자 => .클래스이름 */

        .dinner{
            color: navy;
        }

        /* (4) 아이디 선택자 => #아이디이름 */
        #pick{
            background-color: yellow;
        }


    </style>


</head>
<body>
    <h1>CSS</h1>
    <p>웹페이지를 꾸며주는 스타일 시트 언어</p>
    <ul>
        <li>CSS구조</li>
        <li>CSS선택자</li>
        <li>CSS스타일</li>
    </ul>

    <h1 class="dinner">오늘은 뭐먹지?</h1>
    <ul class="dinner">
        <li class="dinner" id="pick">알배추전</li>
        <li class="dinner">국수</li>
        <li class="dinner">돈까스</li>
    </ul>
</body>
</html>

 

 


 

2. 계층 선택자

계층 선택자 기호
자손 선택자 기준 선택
자식 선택자 기준>선택
후행 선택자 기준~선택
근접 후행 선택자 기준+선택
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
     
        /* (1) 자손 선택자 - 기호 : 띄어쓰기 */
        /* (1-1) div를 기준으로 자손인 span의 색 tomato */
        /* (1-2) div를 기준으로 자손인 li 의 색 blue */
        
        div span{
            color : tomato;
        }
        div li{
            color : blue;
        }
        
        /* (2) 자식 선택자 - 기호 : >  */
        ol>span{
            color : hotpink;
        }
        /*  ol을 기준으로 자식인 span의 색 hotpink */
        
        /* (3) 근접 후행선택자 - 기호 : + */
        /* 첫 번째 li를 기준으로 근접해서 붙어있는 li의 색 green */
         
        li+li{
             color: green;
        }
            
        /* (4) 후행선택자 - 기호 : ~ */
        /* 첫 번째 li를 기준으로 형제관계인 li의 색 lime */
        
        li~li{
             color: lime;
        }

    </style>
</head>
<body>
    <div>
        <strong class="rule">우리 반 규칙!</strong>
        <ol>
            <li>지각하지 않기!</li>
            <li class="rule">결석하지 않기!</li>
            <span>불가피할 땐 수민쌤한테 꼭 연락하기!</span>
            <li>복습하기!</li>
        </ol>
    </div>
</body>
</html>

 

※ first-child, nth-child() 등을 이용하여 같은 위치에 있는 선택자들의 기준 변경

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 계층선택자 이해하기 */
    
        /* (1) 자손 선택자 - 기호 : 띄어쓰기 */
        /* (1-1) div를 기준으로 자손인 span의 색 tomato */
        /* (1-2) div를 기준으로 자손인 li 의 색 blue */
        
        div span{
            color : tomato;
        }
        div li{
            color : blue;
        }
        
        /* (2) 자식 선택자 - 기호 : >  */
        ol>span{
            color : hotpink;
        }
        /*  ol을 기준으로 자식인 span의 색 hotpink */
        
        /* (3) 근접 후행선택자 - 기호 : + */
        /* 첫 번째 li를 기준으로 근접해서 붙어있는 li의 색 green */
         
        li+li{
             color: green;
        }
            
        /* (4) 후행선택자 - 기호 : ~ */
        /* 첫 번째 li를 기준으로 형제관계인 li의 색 lime */
        
        li~li{
             color: lime;
        }

        /* +) 만약 두 번째 li를 기준으로 하고 싶다면?
        nth-child(숫자)
        */

        li:nth-child(2) ~ li {
            color: orange;
        }

        li:first-child ~ li {
            color: pink;
        }
            
        /* rule이라는 클래스 중에 strong 태그에 해당하는 것만 설정 */

        strong.rule{
            background-color: yellow;
        }

    </style>
</head>
<body>
    <div>
        <strong class="rule">우리 반 규칙!</strong>
        <ol>
            <li>지각하지 않기!</li>
            <li class="rule">결석하지 않기!</li>
            <span>불가피할 땐 수민쌤한테 꼭 연락하기!</span>
            <li>복습하기!</li>
        </ol>
    </div>
</body>
</html>

 


 

3. 반응 선택자

반응 선택자 적용
선택자:hover 대상에 마우스를 올렸을 때
선택자:active 대상을 클릭했을 때
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width= , initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 반응 선택자
        (1) 대상:hover 대상에 마우스를 올렸을 때 */
        h1:hover {
            color: blue;
        }

        /* (2) 대상:active 대상을 클릭했을 때 */
        h1:active{
            color: red;
        }
    </style>
</head>
<body>
    <h1>오늘은 즐거운 금요일!</h1>
</body>
</html>

오늘은 즐거운 금요일!

 


 

4. 그룹 선택자

여러가지 요소를 선택하고 싶을 때, 콤마(,)를 이용

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width= , initial-scale=1.0">
    <title>Document</title>
    <style>
         /* 그룹 선택자 */
        /* 여러가지 요소를 선택하고 싶을 때, 콤마(,)를 이용한다 */
        h1,p{
            color: pink;
        }
    </style>
</head>
<body>
    <p class="subtitle">주말이다!</p>
</body>
</html>

 

'HTML CSS JS' 카테고리의 다른 글

CSS margin, padding, box-sizing, border  (0) 2023.01.08
CSS display  (0) 2023.01.08
CSS 기본, 폰트(font)  (0) 2023.01.05
HTML 폼 태그 (form tag)  (0) 2023.01.05
HTML 리스트, 이미지, 앵커, 테이블 태그  (0) 2023.01.04

댓글