Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> CSS

Làm việc với CSS Pseudo Classes

Chúng ta có thể thêm các style cụ thể cho các phần tử HTML hiện có bằng cách sử dụng CSS Pseudo-classes, chọn một phần tử ở một trạng thái đặc biệt như (hover, visited, disabled, v.v.)

LƯU Ý: Để phân biệt CSS Pseudo Classes với Pseudo Elements, trong CSS3, pseudo classes sử dụng ký hiệu dấu hai chấm đơn (:).

Cú pháp

Selector:pseudo-class {
  css-property: /*value*/;
}

Danh sách đầy đủ các CSS Pseudo Classes

STTPseudo-Class & Mô tả
1:active - Chọn phần tử đang được kích hoạt (nhấn chuột)
2:checked - Chọn mọi phần tử được tích chọn (checkbox, radio)
3:disabled - Chọn mọi phần tử bị vô hiệu hóa
4:empty - Chọn phần tử không có con
5:enabled - Chọn mọi phần tử được kích hoạt
6:first-child - Chọn phần tử là con đầu tiên của cha
7:first-of-type - Chọn phần tử đầu tiên loại đó của cha
8:focus - Chọn phần tử đang được focus
9:hover - Chọn phần tử khi di chuột qua
10:in-range - Chọn phần tử có giá trị trong phạm vi cho phép
11:invalid - Chọn phần tử có giá trị không hợp lệ
12:lang(language) - Chọn phần tử có thuộc tính lang bắt đầu bằng "language"
13:last-child - Chọn phần tử là con cuối cùng của cha
14:last-of-type - Chọn phần tử cuối cùng loại đó của cha
15:link - Chọn tất cả liên kết chưa truy cập
16:not(selector) - Chọn mọi phần tử KHÔNG khớp selector
17:nth-child(n) - Chọn phần tử là con thứ n của cha
18:nth-last-child(n) - Chọn con thứ n tính từ cuối
19:nth-last-of-type(n) - Chọn phần tử thứ n loại đó tính từ cuối
20:nth-of-type(n) - Chọn phần tử thứ n loại đó của cha
21:only-of-type - Chọn phần tử là loại duy nhất của cha
22:only-child - Chọn phần tử là con duy nhất của cha
23:optional - Chọn phần tử không có thuộc tính "required"
24:out-of-range - Chọn phần tử có giá trị ngoài phạm vi
25:read-only - Chọn phần tử có thuộc tính "readonly"
26:read-write - Chọn phần tử không có "readonly"
27:required - Chọn phần tử có thuộc tính "required"
28:root - Chọn phần tử gốc của tài liệu (thường là <html>)
29:target - Chọn phần tử đang active (clicked URL chứa anchor name)
30:valid - Chọn phần tử có giá trị hợp lệ
31:visited - Chọn tất cả liên kết đã truy cập

Ví dụ 1: Sử dụng :target, :last-child, :hover, :active, :visited

<!DOCTYPE html>
<html>
<head>
<title>CSS Anchor Pseudo Classes</title>
</head>
<style>
  div {
    color: #000;
    padding: 20px;
    background-image: linear-gradient(135deg, grey 0%, white 100%);
    text-align: center;
  }
  .anchor { color: #FF8A00; }
  .anchor:last-child { color: #03A9F4; }
  .anchor:visited { color: #FEDC11; }
  .anchor:hover { color: #C303C3; }
  .anchor:active { color: #4CAF50; }
</style>
<body>
  <div>
    <h1>Search Engines</h1>
    <a class="anchor" href="https://www.google.com" target="_blank">Go To Google</a>
    <a class="anchor" href="https://www.bing.com" target="_blank">Go To Bing</a>
  </div>
</body>
</html>

Kết quả

Làm việc với CSS Pseudo Classes

Ví dụ 2: Sử dụng :nth-of-type và :hover

<!DOCTYPE html>
<html>
<head>
<title>CSS Pseudo Classes</title>
<style>
  form { width: 70%; margin: 0 auto; text-align: center; }
  * { padding: 2px; margin: 5px; box-sizing: border-box; }
  .child {
    display: inline-block;
    height: 40px; width: 40px;
    color: white; border: 4px solid black;
  }
  .child:nth-of-type(1) { background-color: #FF8A00; }
  .child:nth-of-type(2) { background-color: #F44336; }
  .child:nth-of-type(3) { background-color: #C303C3; }
  .child:nth-of-type(4) { background-color: #4CAF50; }
  .child:nth-of-type(5) { background-color: #03A9F4; }
  .child:nth-of-type(6) { background-color: #FEDC11; }
  .child:hover { background-color: #000; }
</style>
</head>
<body>
  <form>
    <fieldset>
      <legend>CSS-Pseudo-Classes</legend>
      <div id="container">
        <div class="child"></div><div class="child"></div><div class="child"></div>
        <div class="child"></div><div class="child"></div><div class="child"></div>
      </div><br>
    </fieldset>
  </form>
</body>
</html>

Kết quả

Khi KHÔNG di chuột qua các div:

Làm việc với CSS Pseudo Classes

Khi di chuột qua các div:

Làm việc với CSS Pseudo Classes