CodeGym /Khóa học Java /Frontend SELF VI /Các pseudo-element trang trí

Các pseudo-element trang trí

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

9.1 Pseudo-element ::before và ::after

Pseudo-element ::before::after là công cụ mạnh mẽ trong CSS, cho phép thêm các phần tử trang trí trước hoặc sau nội dung của một phần tử mà không cần thay đổi HTML. Chúng thường được sử dụng để tạo hiệu ứng hình ảnh, cải thiện giao diện người dùng và thêm kiểu dáng cho các phần tử.

Mô tả:

  • ::before: pseudo-element, thêm trước nội dung của phần tử
  • ::after: pseudo-element, thêm sau nội dung của phần tử

Cú pháp:

    
      element::before {
        /* kiểu dáng cho pseudo-element before */
      }

      element::after {
        /* kiểu dáng cho pseudo-element after */
      }
    
  

Các thuộc tính chính

Pseudo-element ::before::after có thể chứa hầu như bất kỳ thuộc tính CSS nào, bao gồm màu sắc, kích thước, định vị, nền, bóng đổ, v.v. Tuy nhiên, để pseudo-element hiển thị, cần phải đặt nội dung và kích thước.

  • content: đặt nội dung cho pseudo-element. Có thể là văn bản hoặc hình ảnh, cũng có thể là chuỗi trống
  • display: thiết lập kiểu hiển thị cho pseudo-element. Thường sử dụng block hoặc inline-block
  • position: quản lý vị trí của pseudo-element (ví dụ, absolute hoặc relative)
  • widthheight: thiết lập kích thước cho pseudo-element

9.2 Thêm văn bản

Bằng cách sử dụng thuộc tính content, có thể dễ dàng thêm văn bản vào đầu hoặc cuối bất kỳ phần tử nào.

CSS
    
      .example::before {
        content: "Đầu: ";
        color: blue;
      }

      .example::after {
        content: " :Cuối";
        color: red;
      }
    
  
HTML
    
      <body>
        <p class="example">Đây là một ví dụ văn bản</p>
      </body>
    
  

Giải thích mã:

  • .example::before: thêm văn bản "Đầu: " trước nội dung của phần tử và tô màu xanh
  • .example::after: thêm văn bản " :Cuối" sau nội dung của phần tử và tô màu đỏ

9.3 Đường kẻ trang trí

Cũng có thể thêm các đường kẻ trang trí bao quanh nội dung:

CSS
    
      .decorative-line::before,
      .decorative-line::after {
        content: "";
        display: block;
        height: 2px;
        background: black;
        margin: 10px 0;
      }
    
  
HTML
    
      <body>
        <div class="decorative-line">Văn bản với các đường kẻ trang trí</div>
      </body>
    
  

Giải thích mã:

  • .decorative-line::before: tạo đường kẻ trang trí trước nội dung của phần tử
  • .decorative-line::after: tạo đường kẻ trang trí sau nội dung của phần tử

9.4 Chèn biểu tượng

Cần thêm chút hình ảnh? Dễ dàng chèn biểu tượng:

CSS
    
      .icon::before {
        content: url('https://via.placeholder.com/20');
        display: inline-block;
        vertical-align: middle;
        margin-right: 5px;
      }
    
  
HTML
    
      <body>
        <p class="icon">Văn bản với biểu tượng</p>
      </body>
    
  

Giải thích mã:

  • .icon::before: thêm biểu tượng trước văn bản, sử dụng URL hình ảnh

9.5 Phần tử trang trí phức tạp

Cùng thử thêm phần tử trang trí phức tạp hơn:

CSS
    
      .complex-decor::before {
        content: "";
        display: block;
        width: 50px;
        height: 50px;
        background: linear-gradient(45deg, #f06, transparent);
        position: absolute;
        top: -10px;
        left: -10px;
      }

      .complex-decor {
        position: relative;
        padding: 20px;
        background: #eee;
        margin: 20px;
      }
    
  
HTML
    
      <body>
        <div class="complex-decor">Phần tử với góc trang trí</div>
      </body>
    
  

Giải thích mã:

  • .complex-decor::before: tạo phần tử trang trí trước nội dung chính, sử dụng gradient và định vị tuyệt đối
  • .complex-decor: thiết lập định vị tương đối cho phần tử cha, để pseudo-element có thể định vị tương đối với nó

9.6 Sử dụng animation

Có thể thêm cả animation:

CSS
    
      .animated::before {
        content: "";
        display: block;
        width: 100px;
        height: 100px;
        background: red;
        animation: rotate 5s infinite;
        margin: 20px auto;
      }

      @keyframes rotate {
        0% { transform: rotate(0deg); }
        50% { transform: rotate(180deg); }
        100% { transform: rotate(360deg); }
      }
    
  
HTML
    
      <body>
        <div class="animated"></div>
      </body>
    
  

Giải thích mã:

  • .animated::before: tạo pseudo-element hình vuông và tạo animation xoay sử dụng @keyframes
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION