본문 바로가기

HTML, CSS, JavaScript/CSS

CSS 선택자2

  • 기본 속성 선택자
    : 태그에 작성된 특정 속성을 선택하는 선택자
    (id, class도 선택 가능하지만, 보통 #, . 을 사용함)

    - [ 작성법 ]
    : 선택자[ 속성명 = "속성값"]{ CSS코드; }

    (참고 사항)
    1) 선택자는 생략 가능 → 특정 속성을 가진 모든 요소 선택
    2) "속성값" 양쪽의 쌍따옴표(" ")는 홑따옴표(' ')로 변경하거나 생략할 수 있음
    <div name="name-1">div1</div>
    <div name="name-1">div2</div>
    <div name="name-2">div3</div>
    <div name="name-2">div4</div>

    <p name="name-1">p1</p>
    <p name="name-1">p2</p>
    <p name="name-2">p3</p>
    <p name="name-2">p4</p>
/* CSS 파일 
    파일 전체가 <style> 태그 내부라고 생각하면 됨 */

/* 기본 속성 선택자 */
div[name="name-1"]{background-color: aqua;}

[name="name-2"]{background-color: antiquewhite;}

p[name='name-1']{background-color: cadetblue;}


  • 자식 선택자( > )
    : 지정된 요소 바로 하위에 존재하는 요소를 선택하는 선택자

    - [ 작성법 ]
    : 선택자1>선택자2{ CSS코드; }

    - 선택자1 : 부모 요소 선택
    - 선택자2 : 자식 요소 선택
    <ul id="parent-ul">부모
        <li>자식1</li>
        <li>
            <span>자식2</span>
        </li>
        <li>자식3</li>
        <li>
            <span>자식4</span>
        </li>
    </ul>
/* 자식 선택자 */
#parent-ul>li {background-color: tomato;}
#parent-ul>li>span {background-color: violet;}


  • 후손(자손) 선택자( 띄어쓰기)
    : 지정된 요소의 모든 하위에 존재하는 요소를 선택하는 선택자

    (자식 : 1단계 아래)
    (후손 : n단계 아래)

    - [ 작성법 ]
    : 선택자1 선택자2{ CSS코드; }
    <div id="test-div">
        <p>test-div의 자식 요소 입니다.</p>
        <p>test-div의 후손 요소 입니다.</p>

        <div>
            <p>이것도 후손일까?</p>
        </div>
    </div>
/* 후손 선택자 */
#test-div{border: 2px solid black;}

#test-div p {background-color: magenta;}


  • 반응 선택자
    : 사용자의 움직임에 반응하여 스타일이 달라지는 선택자
    - 요소를 클릭하고 있는 경우 (:active)
    - 요소에 마우스가 올라가 있는 경우 (:hover)
       ※ hover  : 마우스를 올리고 내릴 때
    <div class="div-cls" id="active-test">:active 테스트</div>
    <div class="div-cls" id="hover-test">:hover 테스트</div>
/* 반응 선택자 */
.div-cls{
    /* block 형식 요소만 크기 조정 가능 */
    width: 200px;
    height: 200px;
    border: 1px solid black;
    background-color: #ddd; /* 16진수 표깁법 */

    /* 아래쪽 요소와의 간격 조절 */
    margin-bottom: 30px;

    /* 요소에 마우스 커서가 올라오면 손가락 모양으로 변경 */
    cursor: pointer;
}

/* 클릭하고 있을 때만 반응하는 :active */
#active-test:active{
    background-color: coral;
}

/* 마우스 포인터가 올라갔을 때만 반응하는 :hover */
#hover-test:hover{
    background-color: thistle;
    width: 230px;
    height: 230px;

    /* 변화 시간 지정 */
    /* transition-duration: 0.5s; */
}

/* #hover-test 요소가 변화를 일으키면 0.5초동안 변함 */
#hover-test{transition-duration: 0.5s;}

  • 상태 선택자
    : 입력 양식(input, input 관련 태그)의 상태에 따라 선택되는 선택자

    :focus → 요소에 초점이 맞춰져 있을 때
    :chekced → 요소가 체크되었을 때(radio, checked)

    :enabled / disable  → 요소가 사용 가능한 / 불가능한 상태일 때

    <h4>:focus</h4>
    <input type="text" id="focus-test">

    <h4>:checked</h4>
    <label for="apple">사과</label>
    <input type="checkbox" id="apple" name="fruits"><br>

    <label for="banana">바나나</label>
    <input type="checkbox" id="banana" name="fruits"><br>

    <label for="melon">멜론</label>
    <input type="checkbox" id="melon" name="fruits">

    <h4>:enabled / disabled</h4>
    <div id="test-div2">
        사용 가능 : <input type="text" enabled><br>
        사용 불가능 : <input type="text" value="변경되면 안 되는 값" disabled><br>
    </div>
/* 상태 선택자 */
/* 요소에 초점이 맞춰졌을 때 (:focus) */
#focus-test:focus{background-color: darkcyan;}

/* 요소가 체크되었을 때 (:checked) */
input[name="fruits"]:checked{
    background-color: deepskyblue;
    /* radio, checkbox는 크기를 제외한 스타일 적용 X */

    width: 30px;
    height: 30px;
}

/* 사용 가능 / 불가능 (:enabled / :disable) */
#test-div2 > input:enabled{
    background-color: firebrick;
}

#test-div2 > input:disabled{
    background-color: khaki;
}

  • 동위 선택자
    : 동위 관계( == 동등한 위치 == 형제 관계 )에서
      뒤(다음)에 위치한 요소를 선택하는 선택자

    A
    B
    B

    1) A 바로 뒤(다음)에 있는 B 요소 하나를 선택(+)
    : A선택자 + B선택자{ CSS코드; }

    2) A 뒤에 있는 모든 요소를 선택 ( ~ 틸드(Tilde))
    : A선택자 ~ B선택자{ CSS코드; }
    <div id="div1">1번 입니다.</div>
    <div>2번 입니다</div>
    <div id="div3">3번 입니다.</div>
    <div id="div4">4번 입니다.</div>

    <p>관련 없는 태그입니다~</p>

    <div id="div5">5번 입니다.</div>

    <hr><hr>
/* 동위 선택자 */

/* A 바로 뒤에 있는 B요소 선택(+) */
#div1 + div{background-color: palegoldenrod;}

/* A 뒤에 있는 모든 B요소 선택(~) */
#div3 ~ div{background-color: lightcoral;}

 

'HTML, CSS, JavaScript > CSS' 카테고리의 다른 글

CSS 선택자 우선순위  (0) 2024.12.10
CSS 선택자5  (0) 2024.12.10
CSS 선택자4  (0) 2024.12.10
CSS 선택자3  (0) 2024.12.10
CSS 개요 / CSS 선택자-1  (0) 2024.12.10