당신이 모르는 CSS 속성 선택자

35790 단어
안녕하세요, 오늘 포스트에서는 속성 유형별로 HTML 요소를 선택하는 방법을 알려드리겠습니다. 대부분의 CSS 초보자는 요소 이름이나 클래스 값 또는 id 값만 사용하고 요소를 선택하는 다른 방법을 배우지 않습니다. HTML 요소를 선택하는 다양한 방법을 알면 더 나은 CSS 개발자가 됩니다. 간단한 코드 예제를 제공하지만 더 깊은 이해를 위해 내 코드를 변경하고 프로젝트에서 사용하는 것이 좋습니다.

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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    input[type="text"]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
    }
  </style>
</head>
<body>
  <input type="text" placeholder="Enter value">
</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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class*="input"]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input text-input" type="text" placeholder="Enter value">
</body>
</html>


3. [속성^="값"]



이 속성 선택기는 첫 번째 속성 값일 때만 요소를 선택합니다. 앞에 공백이나 다른 값이 있어도 작동하지 않습니다.

<!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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class^="input"]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input text-input" type="text" placeholder="Enter value">
</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=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class$="text-input"]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input text-input" type="text" placeholder="Enter value">
</body>
</html>


5. [속성~="값"]



이 속성 선택기는 속성 값이 다른 속성 값과 분리된 공백일 때 요소를 선택합니다. 긴 공백이 해당 값을 다른 값과 구분하므로 작동합니다.

<!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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class~="text-input"]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input text-input" type="text" placeholder="Enter value">
</body>
</html>


6. [속성*="값" i]



대괄호 안의 i 플래그는 속성 값의 대소문자를 구분하지 않게 합니다. 즉, 속성 값의 대소문자에 관계없이 주어진 값이 존재하는 한 요소를 선택합니다. i 플래그는 이 게시물에서 설명한 모든 속성 선택기에서 작동합니다.

<!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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class~="text-input" i]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input TEXT-INPUT" type="text" placeholder="Enter value">
</body>
</html>


7. [속성*="값"][속성^="값"][속성&="값"]



id, class 및 type을 결합하여 요소를 선택할 수 있는 것처럼 요소를 선택하는 데 필요한 만큼 속성 선택자를 결합할 수 있습니다.

<!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>
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    [class~="text-input" i][type="text"][placeholder*="Enter value" i]{
      padding: 8px 5px;
      border: 2px solid #333;
      border-radius: 5px;
      box-shadow: 0 0 10px rgba(0,0,0, .2);
      color: purple;
    }
  </style>
</head>
<body>
  <input class="input TEXT-INPUT" type="text" placeholder="Enter value">
</body>
</html>

좋은 웹페이지 즐겨찾기