Hướng dẫn what is css style overriding? - ghi đè kiểu css là gì?

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:

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ẻ:

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 what is css style overriding? - ghi đè kiểu css là gì?

Đ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:

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:

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:

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:

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.

CSS là gì?

Để ghi đè các thuộc tính CSS của một lớp bằng cách sử dụng một lớp khác, chúng ta có thể sử dụng! Chỉ thị quan trọng. Trong CSS,! Có nghĩa là có nghĩa là điều này rất quan trọng, và cặp tài sản: giá trị có chỉ thị này luôn được áp dụng ngay cả khi phần tử khác có độ đặc hiệu cao hơn.use the ! important directive. In CSS, ! important means “this is important”, and the property:value pair that has this directive is always applied even if the other element has higher specificity.

Tại sao kiểu CSS của tôi bị ghi đè?

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.there's some other CSS that is overriding your new CSS. 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.

Kiểu HTML có ghi đè CSS không?

Sử dụng mã HTML theo cách này tạo ra một bảng kiểu nội bộ (trên trang) ghi đè bất kỳ CSS đặc trưng nào được xác định trong các bảng kiểu bên ngoài của các chủ đề và mô-đun của bạn.Điều này rất tiện dụng khi bạn muốn kiểm tra các thay đổi của các kiểu chủ đề hiện tại và chủ đề Frontend mà không cần phải biên dịch lại.. This is handy when you want to test changes of your existing module and frontend theme styles, without having to recompile .

Điều gì đang ghi đè trong HTML?

Ghi đè là một kỹ thuật mở rộng UI trong đó một ứng dụng thay thế các chế độ xem và tài sản từ nền tảng với các bản sao tùy chỉnh của riêng nó của các tệp.Các tệp thay thế được gọi là ghi đè ghi đè của HTALLOW HTML, CSS và JavaScript được gửi đến trình duyệt để được tùy chỉnh rộng rãi bởi ứng dụng.a UI extension technique where an application replaces views and assets from the platform with its own customized copies of the files. The replacement files—called overrides —allow HTML, CSS, and JavaScript sent to the browser to be extensively customized by the application.