πŸ“Web Developing/CSS 기초

V. κ³ κΈ‰μ„ νƒμž - 3. 가상 ν΄λž˜μŠ€μ™€ 가상 μš”μ†Œ

Hush 2022. 6. 6. 19:34

μ„ νƒμžλ‘œ μŠ€νƒ€μΌμ„ μ§€μ •ν•˜κΈ° μ–΄λ €μš΄ λŒ€μƒμ΄ μžˆλ‹€. λ©”λ‰΄μ˜ λͺ‡ 번째 ν•­λͺ©μ„ μ§€μ •ν•˜κ±°λ‚˜, λ‹¨λ½μ˜ 첫 번째 κΈ€μžλ§Œ μ§€μ •ν•  κ²½μš°μ΄λ‹€. 이럴 λ•ŒλŠ” 클래슀 이름 μ•žμ— μ½œλ‘ μ„ ν•œκ°œλ§Œ λΆ™μ—¬ ν‘œμ‹œν•˜λŠ” 가상 ν΄λž˜μŠ€μ™€ λ‘κ°œ λΆ™μ–΄ ν‘œμ‹œν•˜λŠ” 가상 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄κ²°ν•  수 μžˆλ‹€.

 

μ‚¬μš©μž λ™μž‘μ— λ°˜μ‘ν•˜λŠ” 가상 클래슀

μ‚¬μš©μžκ°€ μ›Ή μš”μ†Œλ₯Ό ν΄λ¦­ν•˜κ±°λ‚˜ 마우슀 포인터λ₯Ό μ˜¬λ €λ†“λŠ” λ“± νŠΉμ • λ™μž‘μ„ ν•  λ•Œ μŠ€νƒ€μΌμ΄ λ°”λ€Œλ„λ‘ λ§Œλ“€κ³  μ‹Άλ‹€λ©΄ 가상 클래슀 μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜μž.

λ‹€μŒμ€ 자주 μ‚¬μš©ν•˜λŠ” 가상 클래슀 μ„ νƒμžμ΄λ‹€.

 

β‘ λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크에 μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':link 가상 클래슀 μ„ νƒμž'

μ›Ή λ¬Έμ„œμ˜ 링크 μ€‘μ—μ„œ μ‚¬μš©μžκ°€ 아직 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 링크에 μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.
ν…μŠ€νŠΈ λ§ν¬λŠ” 기본적으둜 νŒŒλž€μƒ‰ κΈ€μžμ™€ λ°‘μ€„λ‘œ ν‘œμ‹œλœλ‹€.
μ΄λ•Œ 링크의 밑쀄을 μ—†μ• κ±°λ‚˜ 색상을 λ°”κΎΈλ €λ©΄ ':link μ„ νƒμž'λ₯Ό μ‚¬μš©ν•œλ‹€.

β‘‘λ°©λ¬Έν•œ 링크에 μŠ€νƒ€μΌμ„ μ μš©ν•œ ':visited 가상 클래슀 μ„ νƒμž'
μ›Ή λ¬Έμ„œμ˜ 링크 μ€‘μ—μ„œ ν•œ 번 이상 λ°©λ¬Έν•œ 링크에 μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.

ν•œ 번 이상 λ°©λ¬Έν•œ ν…μŠ€νŠΈ λ§ν¬λŠ” 보라색이 기본값이닀.

μ΄λ•Œ μ‚¬μš©μžκ°€ λ°©λ¬Έν•œ ν…μŠ€νŠΈ 링크와 색상이 달라지지 μ•Šκ²Œ ν•˜λΌλ©΄ 이 μ„ νƒμžλ₯Ό μ‚¬μš©ν•΄ μ‘°μ ˆν•œλ‹€.

 

β‘’νŠΉμ • μš”μ†Œμ— 마우슀 포인터λ₯Ό μ˜¬λ €λ†“μœΌλ©΄ μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':hover 가상 클래슀 μ„ νƒμž

이 μ„ νƒμžλŠ” μ›Ή μš”μ†Œ μœ„λ‘œ λ§ˆμš°μŠ€ν¬μΈν„°λ₯Ό μ˜¬λ €λ†“μ„ λ•Œ μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.

즉, 이 가상 클래슀 μ„ νƒμžλ₯Ό μ‘μš©ν•˜λ©΄ 이미지 μœ„λ‘œ 마우슀 포인터λ₯Ό μ˜¬λ €λ†“μ•˜μ„ λ•Œ λ‹€λ₯Έ μ΄λ―Έμ§€λ‘œ λ°”λ€Œκ±°λ‚˜, 메인 메뉴 μœ„λ‘œ 마우슀 포인터λ₯Ό μ˜¬λ €λ†“μ•˜μ„ λ•Œ μ„œλΈŒλ©”λ‰΄κ°€ λ‚˜νƒ€λ‚˜λŠ” 효과λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.

 

β‘£μ›Ή μš”μ†Œλ₯Ό ν™œμ„±ν™”ν–ˆμ„ λ•Œ μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':active 가상 클래슀 μ„ νƒμž'

이 μ„ νƒμžλŠ” μ›Ή μš”μ†Œμ˜ λ§ν¬λ‚˜ 이미지 등을 ν™œμ„±ν™”ν–ˆμ„ λ•Œ, 즉 ν΄λ¦­ν–ˆμ„ λ•Œ μŠ€νƒ€μΌμ„ μ§€μ •ν•œλ‹€.

예λ₯Ό λ“€μ–΄ μ–΄λ–€ μ›Ή μš”μ†Œμ˜ 링크λ₯Ό ν΄λ¦­ν•˜λŠ” μˆœκ°„μ˜ μŠ€νƒ€μΌμ„ μ§€μ •ν•  수 μžˆλ‹€.

 

β‘€μ›Ή μš”μ†Œμ— 초점이 λ§žμΆ”μ–΄μ‘Œμ„ λ•Œ μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':focus 가상 클래슀 μ„ νƒμž'

이 μ„ νƒμžλŠ” μ›Ή μš”μ†Œμ— 초점이 λ§žμΆ”μ–΄μ‘Œμ„ λ•Œ μŠ€νƒ€μΌμ„ μ μš©ν•œλ‹€.

예λ₯Ό λ“€μ–΄ ν…μŠ€νŠΈ ν•„λ“œ μ•ˆμ— 마우슀 포인터λ₯Ό μ˜¬λ €λ†“κ±΄, μ›Ή λ¬Έμ„œμ—μ„œ Tab 을 눌러 μž…λ ₯ μ»€μ„œλ₯Ό μ΄λ™ν–ˆμ„ λ•Œ μŠ€νƒ€μΌμ„ μ§€μ •ν•œλ‹€.

 

μ§€κΈˆκΉŒμ§€ μ„€λͺ…ν•œ 1~4번의 가상 클래슀 μ„ νƒμžλŠ” 메뉴 λ§ν¬μ—μ„œ 자주 μ‚¬μš©ν•˜λŠ”λ° μ΄λ•Œ λ‹€μŒκ³Ό 같은 μˆœμ„œλ‘œ μ •μ˜ν•΄μ•Ό ν•œλ‹€.

이 μˆœμ„œκ°€ λ°”λ€Œλ©΄ μŠ€νƒ€μΌμ„ μ •μ˜ν•˜λ”λΌλ„ μ œλŒ€λ‘œ μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.

1. link  2. visited  3. hover  4. active

 

λ‹€μŒμ€ 가상 클래슀 μ„ νƒμžλ₯Ό μ‚¬μš©ν•΄μ„œ λ©”λ‰΄μ˜ ν…μŠ€νŠΈλ₯Ό 상황에 따라 λ‹€λ₯΄κ²Œ ν‘œν˜„ν•˜λŠ” μ˜ˆμ œμ΄λ‹€.

λ¨Όμ € 링크와 λ°©λ¬Έν–ˆλ˜ 링크의 ν…μŠ€νŠΈλŠ” 밑쀄을 μ—†μ•€λ‹€.

그리고 링크 μœ„λ‘œ 마우슀 포인터λ₯Ό μ˜¬λ €λ†“μœΌλ©΄ 짙은 νšŒμƒ‰ 배경에 νžŒμƒ‰ κΈ€μžλ‘œ λ°”λ€Œκ³ ,

ν΄λ¦­ν•˜λŠ” μˆœκ°„ 배경이 λΉ¨κ°„μƒ‰μœΌλ‘œ 바뀐닀.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            .navi ul li {
                float: left;
                width: 150px;
                padding: 10px;
            }
            .navi a:link, .navi a:visited {
                display: block;
                font-size: 14px;
                color: black;
                padding: 10px;
                text-decoration: none;
                text-align: center;
            }
            .navi a:hover, .navi a:focus{
                background-color: #222;
                color: white;
            }
            .navi a:active{
                background-color: #f00;
            }
        </style>
    </head>
    <body>
        <nav class="navi">
            <ul>
                <li><a href="#">이용 μ•ˆλ‚΄</a></li>
                <li><a href="#">객싀 μ†Œκ°œ</a></li>
                <li><a href="#">μ˜ˆμ•½ 방법 및 μš”κΈˆ</a></li>
                <li><a href="#">μ˜ˆμ•½ν•˜κΈ°</a></li>
            </ul>
        </nav>
    </body>
</html>

 

 

μš”μ†Œ μƒνƒœμ— λ”°λ₯Έ 가상 클래슀

μ›Ή μ‚¬μ΄νŠΈλ‚˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν™”λ©΄μ—μ„œ μš”μ†Œμ˜ μƒνƒœμ— 따라 μŠ€νƒ€μΌμ„ μ μš©ν•  수 μžˆλŠ”λ°, μ΄λ•Œ 가상 클래슀 μ„ νƒμžλ₯Ό μ‚¬μš©ν•œλ‹€.

 

-액컀 λŒ€μƒμ— μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':target 가상 클래슀 μ„ νƒμž'

λ¬Έμ„œμ—μ„œ 같은 μ‚¬μ΄νŠΈλ‚˜ λ‹€λ₯Έ μ‚¬μ΄νŠΈμ˜ νŽ˜μ΄μ§€λ‘œ 이동할 λ•Œμ—λŠ” 링크λ₯Ό μ΄μš©ν•˜κ³ , 같은 λ¬Έμ„œ μ•ˆμ—μ„œ λ‹€λ₯Έ μœ„μΉ˜λ‘œ 이동할 λ•Œμ—λŠ” 액컀λ₯Ό μ΄μš©ν•œλ‹€. (λͺ©μ μ§€μ˜ μš”μ†Œμ— idλ₯Ό λΆ€μ—¬ν•˜κ³ , μ•΅μ»€μ—λŠ” href의 μ†μ„±κ°’μœΌλ‘œ "#λͺ©μ μ§€μ•„이디" λ₯Ό μ§€μ •ν•˜λ©΄ 액컀가 μ™„μ„±λœλ‹€.)

μ΄λ•Œ :target μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•΅μ»€λ‘œ μ—°κ²°λœ λΆ€λΆ„, 즉 μ•΅μ»€μ˜ λͺ©μ μ§€κ°€ λ˜λŠ” λΆ€λΆ„μ˜ μŠ€νƒ€μΌμ„ μ‰½κ²Œ μ μš©ν•  수 μžˆλ‹€.

 

액컀λ₯Ό μ΄μš©ν•΄ introλΌλŠ” μœ„μΉ˜λ‘œ 링크할 경우 intro μš”μ†Œμ˜ μŠ€νƒ€μΌμ„ λ°”κΎΈκ³  μ‹Άλ‹€λ©΄ :target μ„ νƒμžλ₯Ό μ‚¬μš©ν•΄ λ‹€μŒ μ˜ˆμ œμ™€ 같이 μž‘μ„±ν•  수 μžˆλ‹€.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            p {
                white-space: normal;
                word-break: break-all;
            }
            #d:target{
                background-color: blue;
                color: white
            }
        </style>
    </head>
    <body style="width:200px;">
        <ul>
            <li><a href="#a">A</a></li>
            <li><a href="#b">B</a></li>
            <li><a href="#c">C</a></li>
            <li><a href="#d">D</a></li>
        </ul>
        <p id="a">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>
        <p id="b">bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</p>
        <p id="c">ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</p>
        <p id="d">ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd</p>
    </body>
</html>

 

 

μš”μ†Œμ˜ μ‚¬μš© 여뢀에 따라 μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':enabled와 :disabled 가상 클래슀 μ„ νƒμž;

ν•΄λ‹Ή μš”μ†Œκ°€ μ‚¬μš© κ°€λŠ₯ν•œ μƒνƒœμΌ λ•Œ μŠ€νƒ€μΌμ„ μ§€μ •ν•˜λ €λ©΄ :enabled μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜κ³ , λ°˜λŒ€λ‘œ μ‚¬μš©ν•  수 μ—†λŠ” μƒνƒœμΌ λ•Œ μŠ€νƒ€μΌμ„ μ§€μ •ν•˜λ €λ©΄ : disabled μ„ νƒμžλ₯Ό μ‚¬μš©ν•œλ‹€.

예λ₯Ό λ“€μ–΄ ν…μŠ€νŠΈ μ˜μ—­ ν•„λ“œ(textarea)λ₯Ό μ‚¬μš©ν•΄ νšŒμ› 약관을 보여 쀄 λ•ŒλŠ” μ‚¬μš©μžκ°€ μž…λ ₯ν•  수 없도둝 disabled 속성을 μ§€μ •ν•΄μ•Ό ν•œλ‹€. μ΄λ•Œ :disabled μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λ©΄ 이런 ν…μŠ€νŠΈ μ˜μ—­ ν•„λ“œμ˜ μŠ€νƒ€μΌμ„ μ‰½κ²Œ μ μš©ν•  수 μžˆλ‹€.

 

μ„ νƒν•œ ν•­λͺ©μ˜ μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':checked 가상 클래슀 μ„ νƒμž'

폼의 λΌλ””μ˜€ λ°•μŠ€λ‚˜ 체크 λ°•μŠ€μ—μ„œ μ„ νƒλœ ν•­λͺ©μ—λŠ” checked λΌλŠ” 속성이 μΆ”κ°€λ©λ‹ˆλ‹€. μ΄λ ‡κ²Œ checked 속성이 μžˆλŠ” μš”μ†Œμ˜ μŠ€νƒ€μΌμ„ μ§€μ •ν•  λ•Œ :checked μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λ©΄ νŽΈλ¦¬ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ λΌλ””μ˜€ λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ λ ˆμ΄λΈ”μ„ 빨간색 ꡡ은 κΈ€μžλ‘œ 바ꡬ렀면 λ‹€μŒκ³Ό 같이 μž…λ ₯ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” <input> κ³Ό <label> νƒœκ·Έκ°€ ν˜•μ œ κ΄€κ³„μ΄λ―€λ‘œ + μ„ νƒμžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            #signup input:checked + label{
                color: red;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <form action="" id="signup">
            <input type="radio" name="room" value="basic" id="basic">
            <label for="basic">κΈ°λ³Έν˜•(μ΅œλŒ€ 2인)</label>
            <input type="radio" name="room" value="family" id="family">
            <label for="family">κ°€μ‘±ν˜•(μ΅œλŒ€ 4인)</label>
        </form>
    </body>
</html>

 

νŠΉμ • μš”μ†Œλ₯Ό μ œμ™Έν•˜κ³  μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” ':not 가상 클래슀 μ„ νƒμž'

:not μ„ νƒμžλŠ” μ΄λ¦„μ—μ„œλ„ μ•Œ 수 μžˆλ“―μ΄ λΆ€μ •μ˜ 의마기 μžˆλ‹€. μ—¬κΈ°μ„œ not은 'κ΄„ν˜Έ μ•ˆμ— μžˆλŠ” μš”μ†Œλ₯Ό μ œμ™Έν•œ'μ΄λΌλŠ” μ˜λ―Έμ΄λ‹€.

 

폼에 ν…μŠ€νŠΈ ν•„λ“œ, μ „ν™”λ²ˆν˜Έ ν•„λ“œ, λΌλ””μ˜€ λ²„νŠΌμ΄ μžˆλ‹€κ³  ν•˜μž. 이 μ€‘μ—μ„œ ν…μŠ€νŠΈμ™€ μ „ν™”λ²ˆν˜Έ ν•„λ“œμ— μŠ€νƒ€μΌμ„ μ μš©ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•˜λ©΄ 될까?

속성 μ„ νƒμžλ₯Ό μ‚¬μš©ν•΄μ„œ ν…μŠ€νŠΈμ™€ μ „ν™”λ²ˆν˜Έ ν•„λ“œλ₯Ό μ„ νƒν•œ λ’€ μŠ€νƒ€μΌμ„ λΆ€μ—¬ν•˜λŠ” 것도 λ¬Όλ‘  κ°€λŠ₯ν•  것이닀. 

ν•˜μ§€λ§Œ :not μ„ νƒμžλ₯Ό μ‚¬μš©ν•˜λ©΄ 더 νŽΈλ¦¬ν•˜κ²Œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€.

λΌλ””μ˜€ ν•„λ“œκ°€ μ•„λ‹Œ ν•„λ“œλ₯Ό μ„ νƒν•˜λŠ” 것이닀.

μ•„λž˜ 두 μ½”λ“œλŠ” 결과적으둜 같은 κΈ°λŠ₯을 μˆ˜ν–‰ν•œλ‹€.

#signup input[type=text], input[type=tel] {
border: 1px solid white;
padding: 5px;
width: 200px;
}
#signup input:not([type=radio]){
    border: 1px solid white;
    padding: 5px;
    width: 200px;
}

 

ꡬ쑰 가상 클래슀

ꡬ쑰 가상 ν΄λž˜μŠ€λž€ μ›Ή λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό κΈ°μ€€μœΌλ‘œ νŠΉμ • μœ„μΉ˜μ— μžˆλŠ” μš”μ†Œλ₯Ό μ°Ύμ•„ μŠ€νƒ€μΌμ„ μ μš©ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 가상 클래슀 μ„ νƒμžμ΄λ‹€.

 

νŠΉμ • μœ„μΉ˜μ˜ μžμ‹ μš”μ†Œ μ„ νƒν•˜κΈ°

μ›Ή λ¬Έμ„œμ—μ„œ νŠΉμ • μš”μ†Œμ— μŠ€νƒ€μΌμ„ μ μš©ν•˜λ €λ©΄ 보톡 classλ‚˜ id μ„ νƒμžλ₯Ό μ‚¬μš©ν•œλ‹€. ν•˜μ§€λ§Œ μš”μ†Œκ°€ μ—¬λŸ¬ 개 λ‚˜μ—΄λ˜μ–΄ μžˆλŠ” κ²½μš°μ—λŠ” classλ‚˜ idλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ μŠ€νƒ€μΌμ„ μ§€μ •ν•  μš”μ†Œκ°€ λͺ‡ λ²ˆμ§ΈμΈμ§€λ₯Ό λ”°μ Έμ„œ μŠ€νƒ€μΌμ„ μ μš©ν•  수 μžˆλ‹€.

λ‹€μŒ ν‘œλŠ” ꡬ쑰 가상 클래슀 μ„ νƒμžμ˜ μ’…λ₯˜λ₯Ό μ •λ¦¬ν•œ 것이닀.

μ’…λ₯˜ μ„€λͺ…
:only-child λΆ€λͺ¨ μ•ˆμ— μžμ‹ μš”μ†Œκ°€ ν•˜λ‚˜λΏμΌ λ•Œ μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
A:only-type-of λΆ€λͺ¨ μ•ˆμ— A μš”μ†Œκ°€ ν•˜λ‚˜λΏμΌ λ•Œ μ„ νƒν•œλ‹€
:first-child λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€
:last-child λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” λͺ¨λ“  μš”μ†Œ μ€‘μ—μ„œ λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€
A:first-of-type λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” A μš”μ†Œ μ€‘μ—μ„œ 첫 번째 μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
A:last-of-type λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” A μš”μ†Œ μ€‘μ—μ„œ λ§ˆμ§€λ§‰ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
:nth-child(n) λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” λͺ¨λ“  μš”μ†Œ μ€‘μ—μ„œ n번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
:nth-last-child(n) λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” λͺ¨λ“  μš”μ†Œ μ€‘μ—μ„œ λμ—μ„œ n번째 μžμ‹ μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€.
A:nth-of-type(n) λΆ€λͺ¨ μ•ˆμ— μžˆλŠ” A μš”μ†Œ μ€‘μ—μ„œ n번째 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€
A:nth-last-of-type(n) λΆ€λͺ¨ μ•ˆμ΄ μžˆλŠ” A μš”μ†Œ μ€‘μ—μ„œ λμ—μ„œ n번째 μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            .contents :nth-child(3){
                color: red;
            }
            .contents p:nth-of-type(3){
                color: blue;
            }
        </style>
    </head>
    <body>
        <div class="contents">
            <h1>제λͺ© 1</h1>
            <p>문단 1</p>
            <p>문단 2</p>
            <h1>제λͺ© 2</h1>
            <p>문단 3</p>
            <p>문단 4</p>
        </div>
    </body>
</html>

 

 

μˆ˜μ‹μ„ μ‚¬μš©ν•΄ μœ„μΉ˜ μ§€μ •ν•˜κΈ°

μœ„μΉ˜λ₯Ό μ§€μ •ν•  λ•Œ :nth-child(n) μ„ νƒμžμ²˜λŸΌ μœ„μΉ˜λ₯Ό μ •ν™•νžˆ μ•Œλ € 쀄 μˆ˜λ„ μžˆμ§€λ§Œ 1,3,5번쨰 처럼 μœ„μΉ˜κ°€ 계속 바뀐닀면 반볡된 κ·œμΉ™μ„ μ°Ύμ•„μ„œ an+b 처럼 μˆ˜μ‹μ„ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

μ΄λ•Œ n값은 0λΆ€ν„° μ‹œμž‘ν•œλ‹€.

λ˜λŠ” ν™€μˆ˜ λ²ˆμ§Έμ— μŠ€νƒ€μΌμ„ 쀄 λ•ŒλŠ” :nth-child(odd), μ§μˆ˜μ§Έμ—λŠ” :nth-child(even)을 μ‚¬μš©ν•  수 μžˆλ‹€.

/* ν™€μˆ˜μΌλ•Œ */
div p:nth-child(odd), div p:nth-child(2n+1)

/* μ§μˆ˜μΌλ•Œ */
div p:nth-child(even), div p:nth-child(2n)

 

가상 μš”μ†Œ

가상 ν΄λž˜μŠ€κ°€ μ›Ή λ¬Έμ„œμ˜ μ—¬λŸ¬ μš”μ†Œ μ€‘μ—μ„œ μ›ν•˜λŠ” μš”μ†Œλ₯Ό μ„ νƒν•œλ‹€λ©΄, 가상 μš”μ†ŒλŠ” λ¬Έμ„œ μ•ˆμ˜ νŠΉμ • 뢀뢄에 μŠ€νƒ€μΌμ„ μ§€μ •ν•˜κΈ° μœ„ν•΄ κ°€μƒμœΌλ‘œ μš”μ†Œλ₯Ό λ§Œλ“€μ–΄ μΆ”κ°€ν•œλ‹€.

가상 μš”μ†Œλ₯Ό λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” νŠΉλ³„νžˆ 화면에 λ³΄μ΄λŠ” 뢀뢄을 κΎΈλ°€ λ•Œ λΆˆν•„μš”ν•œ νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•œ 것이닀.

가상 μš”μ†ŒλŠ” 가상 ν΄λž˜μŠ€μ™€ κ΅¬λ³„ν•˜λ„λ‘ 가상 μš”μ†Œ 이름 μ•žμ— 콜둠 λ‘κ°œλ₯Ό λΆ™μ—¬μ„œ μ‚¬μš©ν•œλ‹€.

λ‹€μŒμ€ 자주 μ‚¬μš©ν•˜λŠ” 가상 μš”μ†Œμ΄λ‹€.

 

첫 번째 쀄, 첫 번째 κΈ€μžμ— μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” '::first-line μš”μ†Œ, ::first-letter μš”μ†Œ'

::first-line μš”μ†Œμ™€ ::first-letter μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ§€μ •ν•œ μš”μ†Œμ˜ 첫 번째 μ€„μ΄λ‚˜ 첫 번째 κΈ€μžμ— μŠ€νƒ€μΌμ„ μ μš©ν•  수 μžˆλ‹€.

::first-letter μš”μ†ŒλŠ” ν•΄λ‹Ή μš”μ†Œμ˜ 첫 번째 κΈ€μžλ₯Ό κ°€λ¦¬ν‚€λŠ” 데, 첫 번째 κΈ€μžλŠ” λ°˜λ“œμ‹œ 첫 번째 쀄에 μžˆμ–΄μ•Ό ν•œλ‹€. 

λ§Œμ•½ <p> νƒœκ·Έ μ•ˆμ— <br> νƒœκ·Έκ°€ μžˆμ–΄μ„œ 첫 번째 κΈ€μžκ°€ 첫 번째 쀄에 없을 κ²½μš°μ—λŠ” μ μš©ν•  수 μ—†λ‹€.

 

λ‚΄μš© μ•žλ’€μ— μ½˜ν…μΈ λ₯Ό μΆ”κ°€ν•˜λŠ” '::before μš”μ†Œ, ::after μš”μ†Œ'

::before μš”μ†Œμ™€ ::after μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ§€μ •ν•œ μš”μ†Œμ˜ λ‚΄μš© μ•žλ’€μ— μŠ€νƒ€μΌμ„ 넣을 수 μžˆλ‹€.

이 μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ μ•žλ’€μ— ν…μŠ€νŠΈλ‚˜ 이미지 등을 μΆ”κ°€ν•  수 μžˆλ‹€.

λ‹€μŒμ€ ::after μš”μ†Œλ₯Ό μ‚¬μš©ν•΄μ„œ μ œν’ˆ λͺ©λ‘μ— 'NEW!!' λΌλŠ” ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•œ μ˜ˆμ œμž…λ‹ˆλ‹€.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <title>Html-basic</title>
        <style>
            ul li.new::after {
                content: "NEW!!";
                font-size: x-small;
                padding: 2px 4px;
                margin: 0 10px;
                border-radius: 2px;
                background: red;
                color: white;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <h1>μ œν’ˆ λͺ©λ‘</h1>            
            <ul>
                <li class="new">μ œν’ˆ A</li>
                <li>μ œν’ˆ B</li>
                <li>μ œν’ˆ C</li>
                <li class="new">μ œν’ˆ D</li>
            </ul>
        </div>
    </body>
</html>