본문 바로가기

코딩 공부/HTML + CSS

[HTML+CSS] 08_CSS구체성단위

CSS 구체성 단위

#01. 복잡한 형태의 셀렉터

1) 다양한 CSS 조합 방식

  • CSS의 셀렉터를 표현하기 위한 조합방식은 CSS2를 기준으로 하여 약 30여가지가 존재하며, HTML5에서 새롭게 약 30여개가 추가되었다. CSS 셀렉터의 조합 기법 모두가 jQuery에서 요소에 접근하기 위한 방법으로 사용된다.

2) CSS 셀렉터의 주요 조합 형태

  • 복수 지정 셀렉터 à 콤마(,)로 구분하기
  • 가상클래스
  • 자식셀렉터 -> ‘’>‘’로 구분하기
  • 자손 셀렉터 -> 공백(“ “)으로 구분하기
  • 속성셀렉터 -> HTML 태그의 속성에 따른 구분
  • HTML5의 새로운 가상 클래스 -> nth-child와 target

3) “>”로 구분한 구조적 표현-자식셀렉터

  • “>”는 HTML의 계층 구조의 표현을 의미한다.
  • A > B일 경우 B요소는 반드시 A의 1depth 안에 존재해야 한다.
<p>
    <div>
        <fieldset>
            <input type="text" id="pwd"/>
        </fieldset>
    </div>
</p>
  • p > div > fieldset > #pwd

01-자식셀렉터.html

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!--스타일 시트-->
    <style type="text/css">
    #container>#header>h1 {
        color: red;
    }

    #container>#content>h1 {
        color: blue;
    }

    #header>.sub {
        color: green;
    }

    #content>.sub {
        color: purple;
    }
    </style>
</head>

<body>
    <div id="container">
        <div id="header">
            <h1>자식셀렉터</h1>
            <p class="sub">
                자식셀렉터에 대해서 알아봅시다.
            </p>
        </div>
        <hr />
        <div id="content">
            <h1>괄호(">")에 의한 HTML 태그의 계층표현</h1>
            <p class="sub">자식세렉터는 "IN"의 의미가 있습니다.</p>
        </div>
    </div>
</body>

</html>

출력결과

4) 공백으로 구분하여 태그의 구조를 표현-자손 셀렉터

  • 자식 셀렉터가 반드시 1depth안에 존재해야 했다면 자손 셀렉터는 depth를 제한하지 않는다.
  • p div #pwd라고 명시할 경우, “p태그 안의 div태그 안의 pwd라는 id값을 갖는 요소”라는 의미가 되어 두번째 textfield를 가리킨다.
  • 명시 과정에서 중간단계를 생략해도 된다. 몇 depth를 더 내려가던,지정한 태그의 범위 안에 존재하기만 하면 된다.
<p>
    <div>
        <fieldset>
            <input type="text" id="pwd"/>
        </fieldset>
    </div>
</p>
  • p div #pwd 이렇게 표현한다.

02-자손셀렉터.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    #container h1 {
        color: red;
    }

    #header h1 {
        color: blue;
    }

    #container p {
        color: green;
    }
    </style>
</head>

<body>
    <div id="container">
        <div id="header">
            <h1>자손셀렉터</h1>
            <p class="sub">
                자손셀렉터에 대해서 알아 봅시다.
            </p>
        </div>
        <hr />
        <div id="content">
            <h1>공백(" ")에 의한 HTML 태그의 계층 표현</h1>
            <p class="sub">
                자식셀렉터는 반드시 1depth에 대한 요소만을 의미해야 하지만 자손셀렉터는 태그의 계층을 건너뛸 수 있습니다.
            </p>
        </div>
    </div>
</body>

</html>

출력결과

5) 태그의 속성에 따른 표현 - 속성 셀렉터

  • 스타일시트의 셀렉터가 적용되는 대상에게 특정 속성이 있는지 여부와 특정 속성의 값이 적용되어 있는지 여부에 따라 태그 요소를 좀 더 구체적으로 가리킬 수 있다.
<p>
    <div>
        <fieldset>
            <input type="text" id="pwd"/>
        </fieldset>
    </div>
</p>
  • input[type=‘password’] <- type속성이 password인 input 태그

03-속성셀렉터.html

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    input {
        /** 테두리 : 굵기 종류 색상 */
        border: 1px solid orange;
    }
    </style>
</head>

<body>
    <form>
        <h1>회원가입</h1>
        <fieldset>
            <legend>기본정보</legend>
            <div>
                <label class="title" for="user_id">아이디</label>
                <input type="text" name="user_id" id="user_id" />
            </div>
            <div>
                <label class="title" for="user_pw">비밀번호</label>
                <input type="password" name="user_pw" id="user_pw">
            </div>
        </fieldset>
        <br />
        <fieldset>
            <legend>성별</legend>
            <div>
                <input type="radio" name="gender" value="M" id="gender_m" />
                <label for="gender_m">남자</label>
                <input type="radio" name="gender" value="F" id="gender_f" />
                <label for="gender_f">여자</label>
            </div>
        </fieldset>
        <br />
        <fieldset>
            <legend>취미</legend>
            <input type="checkbox" name="hobby" value="축구" id="hobby1">
            <label for="hobby1">축구</label>
            <input type="checkbox" name="hobby" value="농구" id="hobby2">
            <label for="hobby2">농구</label>
            <input type="checkbox" name="hobby" value="야구" id="hobby3">
            <label for="hobby3">야구</label>
        </fieldset>
    </form>
</body>

</html>

출력결과

#02. HTML5에서 추가된 가상클래스 - nth-child

  • nth-child 가상 클래스
    • HTML5의 CSS3에서는 태그 요소를 좀 더 구조적으로 명시할 수 있도록 하기 위해, 여러개의 요소 중 n번째 요소라는 의미로 :nth-chlid(n)형식이 추가되었다.
    • 요소를 뒤에서부터 카운트 할 경우 nth-last-child(n)을 사용한다.
    • 주어진 요소에 대해 특정 수의 배수에 해당하는 요소만 적용할 경우 li:nthchild(2n)과 같은 형식을 사용한다.
    • 홀수번째 요소만을 지정할 경우 nth-child(odd)라고 지정한다.

04 - nth-child.html

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    li:nth-child(odd) {
        color: red;
        background-color: green;
    }

    li:nth-child(2) {
        color: green;
        background-color: red;
    }

    li:nth-child(3n) {
        color: blue;
        background-color: yellow;
    }
    </style>
</head>

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
        <li>10</li>
    </ul>
</body>

</html>

출력결과

#03. 구체성 단위

1) CSS 구체성 단위

  • 여러가지 형태로 조합된 CSS셀렉터는 태그,CLASS,ID형식의 요소가 몇번 지정되었는가에 따라 각각 점수를 부여받는다.
  • 부여된 점수가 높은 형식이 우선적으로 적용된다.
명시방법 점수
TAG 1점
CLASS 10점
ID 100점
HTML태그의 style속성 사용 1000점
  • 사용예
    • div.bbs_content :TAG방식1회 +CLASS방식1회 =11점
    • body>div#container >div#header :TAG3회 +ID2회 =203점
    • body,p,span,input,textarea :TAG5회 =5점

06-CSS구체성단위

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    div {
        color: purple;
        1
    }

    div>h1#title {
        102 color: blue;
    }

    div#container div.box {
        112 color: orange;
    }

    div#container .item {
        111 color: green;
    }

    #container #active {
        200 color: red;
    }

    div#container>ul>li {
        103 color: black;
    }
    </style>
</head>

<body>
    <div id="container">
        <h1 id="title">구체성단위</h1>
        구체성단위를 알아봅시다.
        <div class="box">
            CSS의 표현기법에 따라서 점수가 부여됩니다.
        </div>
        <ul>
            <li class="item" id="active">id: 100점</li>
            <li class="item">class: 10점</li>
            <li>tag: 1점</li>
        </ul>
    </div>
</body>

</html>

출력결과

'코딩 공부 > HTML + CSS' 카테고리의 다른 글

[HTML+CSS] 10_문단관련속성  (0) 2020.05.09
[HTML+CSS] 09_폰트관련속성  (0) 2020.05.09
[HTML+CSS] 07_CSS시작하기  (0) 2020.05.09
[HTML+CSS] 06_입력양식만드  (0) 2020.05.09
[HTML+CSS] 05_멀티미디어  (0) 2020.05.09