CodeGym /์ž๋ฐ” ์ฝ”์Šค /Frontend SELF KO /ํผ์˜ ์˜์‚ฌ ํด๋ž˜์Šค

ํผ์˜ ์˜์‚ฌ ํด๋ž˜์Šค

Frontend SELF KO
๋ ˆ๋ฒจ 29 , ๋ ˆ์Šจ 3
์‚ฌ์šฉ ๊ฐ€๋Šฅ

4.1 ์˜์‚ฌ ํด๋ž˜์Šค :checked

CSS์˜ ํผ ์˜์‚ฌ ํด๋ž˜์Šค๋Š” ํผ ์š”์†Œ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ์Šคํƒ€์ผ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜์‚ฌ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ :checked, :disabled, :enabled, :invalid ์˜์‚ฌ ํด๋ž˜์Šค๋ฅผ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

:checked ์˜์‚ฌ ํด๋ž˜์Šค๋Š” "์„ ํƒ๋œ" ์ƒํƒœ์˜ ํผ ์š”์†Œ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฒดํฌ๋ฐ•์Šค(<input type="checkbox">), ๋ผ๋””์˜ค ๋ฒ„ํŠผ(<input type="radio">), ์˜ต์…˜(<option>)์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ:

    
      ์…€๋ ‰ํ„ฐ:checked {
        ์†์„ฑ: ๊ฐ’;
      }
    
  

์‚ฌ์šฉ ์˜ˆ์ œ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์„ ํƒ๋œ ์ฒดํฌ๋ฐ•์Šค, ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๋ฐ ์˜ต์…˜์ด "์„ ํƒ๋จ" ์ƒํƒœ์ผ ๋•Œ ์ ์ ˆํ•œ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๋ฐ›์Šต๋‹ˆ๋‹ค:

CSS
    
      /* ์„ ํƒ๋œ ์ฒดํฌ๋ฐ•์Šค ์Šคํƒ€์ผ๋ง */

      input[type="checkbox"]:checked {
        background-color: #3498db;
      }

      /* ์„ ํƒ๋œ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      input[type="radio"]:checked {
        background-color: #2ecc71;
      }

      /* ์„ ํƒ๋œ ์˜ต์…˜ ์Šคํƒ€์ผ๋ง */

      option:checked {
        background-color: #e74c3c;
      }
    
  

4.2 ์˜์‚ฌ ํด๋ž˜์Šค :disabled

:disabled ์˜์‚ฌ ํด๋ž˜์Šค๋Š” ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ์˜ ํผ ์š”์†Œ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ผ์‹œ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์š”์†Œ๋ฅผ ์Šคํƒ€์ผ๋งํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ:

    
      ์…€๋ ‰ํ„ฐ:disabled {
        ์†์„ฑ: ๊ฐ’;
      }
    
  

์‚ฌ์šฉ ์˜ˆ์ œ

์ด ์˜ˆ์ œ์—์„œ๋Š” ๋น„ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ์™€ ๋ฒ„ํŠผ์ด ์ ์ ˆํ•œ ๋ฐฐ๊ฒฝ์ƒ‰, ํ…Œ๋‘๋ฆฌ ๋ฐ ํ…์ŠคํŠธ ์ƒ‰์ƒ์„ ๋ฐ›์œผ๋ฉฐ, ์ปค์„œ๋ฅผ "๊ธˆ์ง€๋จ"์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค:

CSS
    
      /* ๋น„ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:disabled {
        background-color: #f0f0f0;
        border-color: #ccc;
        color: #888;
      }

      /* ๋น„ํ™œ์„ฑํ™”๋œ ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      button:disabled {
        background-color: #d0d0d0;
        color: #777;
        cursor: not-allowed;
      }
    
  

4.3 ์˜์‚ฌ ํด๋ž˜์Šค :enabled

:enabled ์˜์‚ฌ ํด๋ž˜์Šค๋Š” ํ™œ์„ฑํ™”๋œ ํผ ์š”์†Œ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์š”์†Œ๋ฅผ ์Šคํƒ€์ผ๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ:

    
      ์…€๋ ‰ํ„ฐ:enabled {
        ์†์„ฑ: ๊ฐ’;
      }
    
  

์‚ฌ์šฉ ์˜ˆ์ œ

์ด ์˜ˆ์ œ์—์„œ๋Š” ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ์™€ ๋ฒ„ํŠผ์ด ์ ์ ˆํ•œ ๋ฐฐ๊ฒฝ์ƒ‰, ํ…Œ๋‘๋ฆฌ ๋ฐ ํ…์ŠคํŠธ ์ƒ‰์ƒ์„ ๋ฐ›์œผ๋ฉฐ ์ปค์„œ๋ฅผ "ํฌ์ธํ„ฐ"๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค:

CSS
    
      /* ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:enabled {
        background-color: #fff;
        border-color: #3498db;
      }

      /* ํ™œ์„ฑํ™”๋œ ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      button:enabled {
        background-color: #2ecc71;
        color: white;
        cursor: pointer;
      }
    
  

4.4 ์˜์‚ฌ ํด๋ž˜์Šค :invalid

:invalid ์˜์‚ฌ ํด๋ž˜์Šค๋Š” ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ ํผ ์š”์†Œ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์Šคํƒ€์ผ๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ:

    
      ์…€๋ ‰ํ„ฐ:invalid {
        ์†์„ฑ: ๊ฐ’;
      }
    
  

์‚ฌ์šฉ ์˜ˆ์ œ

์ด ์˜ˆ์ œ์—์„œ๋Š” ์ž˜๋ชป๋œ ์ž…๋ ฅ ํ•„๋“œ์™€ ํ…์ŠคํŠธ ํ•„๋“œ๊ฐ€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ํ…Œ๋‘๋ฆฌ์™€ ๋ฐฐ๊ฒฝ์ƒ‰์„ ๋ฐ›์Šต๋‹ˆ๋‹ค:

CSS
    
      /* ์ž˜๋ชป๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:invalid {
        border-color: #e74c3c;
        background-color: #f9e0e0;
      }

      /* ์ž˜๋ชป๋œ ํ…์ŠคํŠธ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      textarea:invalid {
        border-color: #e74c3c;
        background-color: #f9e0e0;
      }
    
  

4.5 ์ „์ฒด ๊ตฌํ˜„ ์˜ˆ์ œ

CSS
    
      /* ์„ ํƒ๋œ ์ฒดํฌ๋ฐ•์Šค ์Šคํƒ€์ผ๋ง */

      input[type="checkbox"]:checked {
        background-color: #3498db;
      }

      /* ์„ ํƒ๋œ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      input[type="radio"]:checked {
        background-color: #2ecc71;
      }

      /* ๋น„ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:disabled {
        background-color: #f0f0f0;
        border-color: #ccc;
        color: #888;
      }

      /* ๋น„ํ™œ์„ฑํ™”๋œ ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      button:disabled {
        background-color: #d0d0d0;
        color: #777;
        cursor: not-allowed;
      }

      /* ํ™œ์„ฑํ™”๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:enabled {
        background-color: #fff;
        border-color: #3498db;
      }

      /* ํ™œ์„ฑํ™”๋œ ๋ฒ„ํŠผ ์Šคํƒ€์ผ๋ง */

      button:enabled {
        background-color: #2ecc71;
        color: white;
        cursor: pointer;
      }

      /* ์ž˜๋ชป๋œ ์ž…๋ ฅ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      input:invalid {
        border-color: #e74c3c;
        background-color: #f9e0e0;
      }

      /* ์ž˜๋ชป๋œ ํ…์ŠคํŠธ ํ•„๋“œ ์Šคํƒ€์ผ๋ง */

      textarea:invalid {
        border-color: #e74c3c;
        background-color: #f9e0e0;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>ํผ ์˜์‚ฌ ํด๋ž˜์Šค ์˜ˆ์‹œ</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <form>
            <label>
              <input type="checkbox" name="option1"> Option 1
            </label>
            <br>
            <label>
              <input type="radio" name="choice" value="1"> Choice 1
            </label>
            <label>
              <input type="radio" name="choice" value="2"> Choice 2
            </label>
            <br>
            <input type="text" placeholder="Enter your name" required>
            <br>
            <input type="email" placeholder="Enter your email" required>
            <br>
            <button type="submit">Submit</button>
            <button type="button" disabled>Disabled Button</button>
          </form>
        </body>
      </html>
    
  
1
ะžะฟั€ะพั
๊ฐ€์ƒ ํด๋ž˜์Šค,ย  29 ัƒั€ะพะฒะตะฝัŒ,ย  3 ะปะตะบั†ะธั
ะฝะตะดะพัั‚ัƒะฟะตะฝ
๊ฐ€์ƒ ํด๋ž˜์Šค
๊ฐ€์ƒ ํด๋ž˜์Šค
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION