Hướng dẫn how do i override a css stylesheet? - làm cách nào để ghi đè biểu định kiểu css?

Mục lục

Đôi khi các nhà phát triển phải làm việc với các mã cũ, và đó là khi họ gặp phải một số vấn đề lớn, đặc biệt, phong cách nội tuyến không thể bị ghi đè.

Để ngăn chặn vấn đề đó, bạn nên hiểu hai khái niệm - khái niệm về trật tự và kế thừa.

Thuật ngữ xếp tầng xếp tầng có nghĩa là thứ tự phân cấp trong đó các loại bảng kiểu khác nhau tương tác khi hai kiểu đi vào xung đột. Xung đột xảy ra khi hai kiểu khác nhau được áp dụng cho cùng một yếu tố.

Đối với những trường hợp này, tồn tại một đơn đặt hàng cho các bảng phong cách theo mức độ ưu tiên của chúng (4 có ưu tiên cao nhất):

  • Trình duyệt mặc định.
  • Tấm phong cách bên ngoài (liên kết hoặc nhập khẩu).
  • Tấm phong cách nội bộ (nhúng).
  • Phong cách nội tuyến.

Vì vậy, nó có nghĩa là khi một cuộc xung đột phát sinh giữa hai phong cách, kiểu cuối cùng được sử dụng được ưu tiên. Để làm cho nó rõ ràng hơn, bạn nên nhớ hai quy tắc sau:

  • Bạn phải đặt các kiểu nội tuyến trong tài liệu HTML, trong khi các bảng kiểu nhúng phải được đặt trong tài liệu HTML để các kiểu nội tuyến sẽ luôn là mẫu được sử dụng cuối cùng và do đó chúng sẽ được ưu tiên.
  • Các bảng phong cách nội bộ có mức độ ưu tiên cao hơn so với các bảng bên ngoài, vì theo trình duyệt, các bảng phong cách bên ngoài (bảng kiểu liên kết) luôn đến trước các bảng phong cách bên trong (tấm nhúng), ngay cả khi bạn đặt chúng sau.

Bạn có thể tìm thấy các ví dụ về các loại hình kiểu khác nhau ở đây.

HTML sử dụng các mối quan hệ cha mẹ-con. Một phần tử con thường sẽ kế thừa các đặc điểm của phần tử cha trừ khi có định nghĩa khác. Ví dụ, nhìn vào mã sau.

Ví dụ về việc sử dụng một phần tử kế thừa kiểu của phần tử cha:

<!DOCTYPE html>
<html>
  <head>
    <style>
      body {
        color: blue;
        font-family: arial;
      }
    </style>
  </head>
  <body>
    <p>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry .
    </p>
  </body>
</html>

Vì thẻ, là phần tử con của chúng tôi, nằm trong thẻ, đó là phần tử cha, nó sẽ lấy tất cả các kiểu được cung cấp cho thẻ ngay cả khi nó không được cung cấp bất kỳ kiểu nào của riêng nó. Nhưng nếu bạn muốn đoạn văn đưa ra một số quy tắc của cơ thể nhưng không phải các quy tắc khác, bạn có thể ghi đè các quy tắc mà bạn không muốn. Đây là một ví dụ cho bạn.

Ví dụ về việc ghi đè kiểu của thẻ:

<!DOCTYPE html>
<html>
  <head>
    <style>
      body {
        color: blue;
        font-family: arial;
      }
      p {
        color: red;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <p>
      Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    </p>
  </body>
</html>

Bây giờ, hãy để xem danh sách các ưu tiên nội bộ (1 có ưu tiên cao nhất):

  1. TÔI
  2. Lớp
  3. Yếu tố

Bạn có thể tìm thấy thông tin chi tiết về ID CSS và lớp ở đây.

Để hiểu rõ hơn, hãy ghi nhớ cấu trúc sau:

Hướng dẫn how do i override a css stylesheet? - làm cách nào để ghi đè biểu định kiểu css?

Điều đó có nghĩa là nếu bạn có một yếu tố với bộ chọn lớp và ID với các kiểu khác nhau, thì đó là kiểu ID được ưu tiên. Ví dụ, hãy để Lừa nhìn vào mã này.

Ví dụ về việc ghi đè kiểu CSS với bộ chọn ID:

<!DOCTYPE html>
<html>
  <head>
    <style>
      #testid {
        color: blue;
        font-weight: bold;
      }
      .example {
        color: red;
        font-weight: normal;
      }
    </style>
  </head>
  <body>
    <p id="testid" class="example">
      Lorem Ipsum is simply dummying text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.
    </p>
  </body>
</html>

Như chúng ta có thể thấy, lớp học được đặt sau ID, nhưng ID vẫn được ưu tiên. Nó chỉ áp dụng nếu cả ID và lớp được sử dụng trong cùng một yếu tố.

Bây giờ, hãy để Lừa xem một ví dụ, trong đó một ID và một lớp được sử dụng trong hai yếu tố khác nhau.

Ví dụ về việc ghi đè kiểu CSS với bộ chọn lớp:

<!DOCTYPE html>
<html>
  <head>
    <style>
      #testid {
        color: #777777;
        font-style: normal;
        background-color: lightgreen;
      }
      .example {
        display: block;
        color: whitesmoke;
        font-style: italic;
        background-color: lightblue;
        padding: 20px;
      }
    </style>
  </head>
  <body>
    <div id="testid">
      <span class="example">
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
      </span>
    </div>
  </body>
</html>

Ở đây, bộ chọn lớp áp đảo bộ chọn ID vì đây là lần sử dụng cuối cùng. Bộ chọn ID chỉ được ưu tiên hơn một bộ chọn lớp nếu cả hai đều được sử dụng trong cùng một yếu tố.

Bây giờ, hãy xem cách chúng ta có thể làm cho một lớp ghi đè lên một lớp khác. Nếu lớp đó có màu nền màu xanh lam và thay vào đó, bạn muốn có nền màu đỏ, hãy cố gắng thay đổi màu từ màu xanh sang màu đỏ trong lớp. Bạn cũng có thể tạo một lớp CSS mới xác định thuộc tính màu nền với giá trị màu đỏ và để cho tham chiếu của bạn lớp đó.

Ví dụ về việc tạo một kiểu ghi đè khác:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .bg-blue {
        background-color: blue;
      }
      .bg-red {
        background-color: red;
      }
    </style>
  </head>
  <body>
    <div class="bg-blue bg-red">
      Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    </div>
  </body>
</html>

Một tuyên bố quan trọng là một cách tuyệt vời để ghi đè các phong cách bạn muốn. Khi một quy tắc quan trọng được sử dụng trên một tuyên bố kiểu, tuyên bố này sẽ ghi đè bất kỳ tuyên bố nào khác. Khi hai tuyên bố mâu thuẫn với! Các quy tắc quan trọng được áp dụng cho cùng một yếu tố, tuyên bố với tính đặc hiệu lớn hơn sẽ được áp dụng.!Important declaration is a great way to override the styles you want. When an important rule is used on a style declaration, this declaration will override any other declarations. When two conflicting declarations with the!important rules are applied to the same element, the declaration with a greater specificity will be applied.

Hãy để xem cách bạn có thể sử dụng! Khai báo quan trọng để ghi đè các kiểu nội tuyến. Bạn có thể đặt các kiểu riêng lẻ trong tệp CSS toàn cầu của mình là! Các kiểu ghi đè quan trọng được đặt trực tiếp trên các phần tử.

Ví dụ về việc ghi đè kiểu CSS với! Quy tắc quan trọng:

<!DOCTYPE html>
<html>
  <head>
    <style>
      .box[style*="color: red"] {
        color: white !important;
      }
      .box {
        background-color: blue;
        padding: 15px 25px;
        margin: 10px;
      }
    </style>
  </head>
  <body>
    <div class="box" style="color: red;">
      Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    </div>
  </body>
</html>

Tuy nhiên, bạn nên tránh sử dụng! Quan trọng, bởi vì nó làm cho việc gỡ lỗi trở nên khó khăn hơn bằng cách phá vỡ tầng tự nhiên trong các kiểu dáng của bạn.

Thay vì sử dụng! Quan trọng, bạn có thể thử những điều sau:

  1. Sử dụng tốt hơn các tầng CSS.
  2. Sử dụng các quy tắc cụ thể hơn. Bằng cách chỉ ra một hoặc nhiều phần tử trước phần tử bạn đã chọn, quy tắc trở nên cụ thể hơn và được ưu tiên cao hơn.
  3. Là một trường hợp đặc biệt vô nghĩa cho (2), các bộ chọn đơn giản sao chép để tăng tính đặc hiệu khi bạn không có gì để chỉ định.

Nếu bạn muốn tìm thêm thông tin về! Tuyên bố quan trọng, chỉ cần bấm vào đây.

Các quy tắc để ghi đè bất kỳ bảng kiểu nào là gì?

Sau đây là quy tắc để ghi đè bất kỳ quy tắc biểu định kiểu nào ...
Bất kỳ biểu định kiểu nội tuyến nào đều được ưu tiên cao nhất. ....
Bất kỳ quy tắc được xác định trong ... ....
Bất kỳ quy tắc nào được xác định trong tệp Bảng kiểu bên ngoài đều có mức độ ưu tiên thấp nhất và các quy tắc được xác định trong tệp này sẽ chỉ được áp dụng khi không áp dụng hai quy tắc trên ..

Làm thế nào để bạn ghi đè CSS nội bộ?

Cách duy nhất để ghi đè kiểu nội tuyến là sử dụng! Từ khóa quan trọng bên cạnh quy tắc CSS.using ! important keyword beside the CSS rule.

Bạn có thể ghi đè một CSS quan trọng không?

Có hai cách bạn có thể ghi đè một!Thẻ quan trọng trong CSS.Bạn có thể thêm một quy tắc CSS khác với một thẻ quan trọng và sử dụng bộ chọn có độ đặc hiệu cao hơn.add another CSS rule with an ! important tag and use a selector with a higher specificity.

Điều gì đang ghi đè CSS của tôi?

Nếu bạn có thể thấy CSS mới của mình trong khung Styles, nhưng CSS mới của bạn được bỏ qua, điều đó có nghĩa là có một số CSS khác đang ghi đè lên CSS mới của bạn.Trong thuật ngữ CSS Khái niệm này được gọi là tính đặc hiệu.Chrome devtools có thể giúp bạn tìm thấy các CSS cũ đang khiến CSS mới của bạn không được áp dụng.. In CSS terminology this concept is called Specificity. Chrome DevTools can help you find the old CSS that is causing your new CSS to not be applied.