CodeGym /Khóa học Java /Frontend SELF VI /Các pseudo-element ::before và ::after

Các pseudo-element ::before và ::after

Frontend SELF VI
Mức độ , Bài học
Có sẵn

6.1 Thuộc tính content

Pseudo-element ::before::after cho phép thêm nội dung trước và sau nội dung của phần tử, mà không cần thay đổi mã HTML. Chúng được sử dụng rộng rãi cho mục đích trang trí, cải thiện giao diện người dùng và tạo ra các trang web tương tác hơn.

Pseudo-element ::before và ::after là gì?

Pseudo-element ::before::after tạo ra các phần tử ảo, được chèn vào trước và sau nội dung của phần tử được chọn. Những pseudo-element này thường được sử dụng để thêm biểu tượng, yếu tố trang trí, hoặc các hiệu ứng hình ảnh khác.

Cú pháp before:

    
      selector::before {
        content: "text hoặc các giá trị khác";
        /* styles */
      }
    
  

Cú pháp after:

    
      selector::after {
        content: "text hoặc các giá trị khác";
        /* styles */
      }
    
  

Thuộc tính content

Thuộc tính chính cho pseudo-element ::before::aftercontent. Thuộc tính này xác định nội dung của pseudo-element. Nó có thể là một chuỗi văn bản, hình ảnh, hoặc thậm chí là giá trị trống nếu chỉ cần hiệu ứng hình ảnh.

Các giá trị có thể cho thuộc tính content:

  • Văn bản: "text"
  • Hình ảnh: url("path/to/image.png")
  • Giá trị trống: ""
  • Attributes: attr(attributeName)
  • Counters: counter(name)

6.2 Ví dụ sử dụng ::before và ::after

Thêm các yếu tố trang trí

Ví dụ 1: Thêm biểu tượng trước văn bản

Trong ví dụ này, pseudo-element ::before được sử dụng để thêm biểu tượng trước văn bản của liên kết. margin-right thêm khoảng cách giữa biểu tượng và văn bản:

CSS
    
      /* Thêm biểu tượng trước văn bản của liên kết */

      a::before {
        content: "🔗";
        margin-right: 5px;
      }
    
  

Ví dụ 2: Thêm yếu tố trang trí sau đoạn văn bản

Trong ví dụ này, pseudo-element ::after thêm yếu tố trang trí sau đoạn văn bản. display: blocktext-align: right được sử dụng để căn chỉnh yếu tố theo cạnh phải:

CSS
    
      /* Thêm yếu tố trang trí sau đoạn văn bản */

      p::after {
        content: "❦";
        display: block;
        text-align: right;
        color: red;
      }
    
  

Tạo khung và nền trang trí

Ví dụ 3: Khung trang trí quanh phần tử

Trong ví dụ này, pseudo-element ::before được sử dụng để tạo dải trang trí trên phần tử div. position: absolutetop: -10px cho phép định vị dải trên phần tử:

CSS
    
      /* Khung trang trí quanh phần tử */

      div::before {
        content: "";
        display: block;
        width: 100%;
        height: 10px;
        background-color: #3498db;
        position: absolute;
        top: -10px;
        left: 0;
      }
    
  

Ví dụ 4: Tự động thêm dấu ngoặc kép

Trong ví dụ này, pseudo-element ::before::after được sử dụng để thêm dấu ngoặc kép quanh khối trích dẫn:

CSS
    
      /* Tự động thêm dấu ngoặc kép quanh trích dẫn */

      blockquote::before {
        content: "“";
        font-size: 2em;
        color: #ccc;
      }

      blockquote::after {
        content: "”";
        font-size: 2em;
        color: #ccc;
      }
    
  

Ví dụ 5: Đánh số tiêu đề

Trong ví dụ này, pseudo-element ::before được sử dụng để thêm số trước tiêu đề h2. counter-increment tăng giá trị biến đếm, và content: counter(section) chèn giá trị hiện tại của biến đếm:

CSS
    
      /* Đánh số tiêu đề */

      h2::before {
        counter-increment: section;
        content: counter(section) ". ";
        font-weight: bold;
      }
    
  

6.3 Áp dụng và tạo kiểu cho pseudo-element

Tạo kiểu cho pseudo-element

Pseudo-element có thể được tạo kiểu giống như bất kỳ phần tử nào khác. Chúng hỗ trợ hầu hết các thuộc tính CSS, bao gồm màu sắc, nền, biên, kích thước và định vị.

Sử dụng pseudo-element để tạo bố cục phức tạp

Pseudo-element thường được sử dụng để tạo ra các yếu tố trang trí trong bố cục, như khung, bóng và các hiệu ứng hình ảnh khác, mà không cần thêm các phần tử HTML bổ sung.

Ví dụ: mỗi phần tử danh sách sẽ có dấu chấm xanh trước văn bản:

CSS
    
      ul li::before {
        content: "•";
        color: blue;
        margin-right: 5px;
      }
    
  
HTML
    
      <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
      </ul>
    
  

6.4 Ví dụ hoàn chỉnh

CSS
    
      /* Thêm biểu tượng trước văn bản của liên kết */

      a::before {
        content: "🔗";
        margin-right: 5px;
      }

      /* Thêm yếu tố trang trí sau đoạn văn bản */

      p::after {
        content: "❦";
        display: block;
        text-align: right;
        color: red;
      }

      /* Khung trang trí quanh phần tử */

      .decorative-box {
        position: relative;
      }

      .decorative-box::before {
        content: "";
        display: block;
        width: 100%;
        height: 10px;
        background-color: #3498db;
        position: absolute;
        top: -10px;
        left: 0;
      }

      /* Tự động thêm dấu ngoặc kép quanh trích dẫn */

      blockquote::before {
        content: "“";
        font-size: 2em;
        color: #ccc;
      }

      blockquote::after {
        content: "”";
        font-size: 2em;
        color: #ccc;
      }

      /* Đánh số tiêu đề */

      h2::before {
        counter-increment: section;
        content: counter(section) ". ";
        font-weight: bold;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Ví dụ về pseudo-element ::before và ::after</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <a href="#">Liên kết với biểu tượng</a>
          <p>Đoạn văn với yếu tố trang trí sau văn bản</p>
          <div class="decorative-box">Phần tử với khung trang trí</div>
          <blockquote>Trích dẫn với dấu ngoặc kép tự động</blockquote>
          <h2>Tiêu đề với đánh số</h2>
          <h2>Một tiêu đề khác</h2>
        </body>
      </html>
    
  
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION