Hướng dẫn what is overriding my css? - ghi đè css của tôi là gì?

Tôi đang gặp một số vấn đề với "hệ thống phân cấp" CSS (không chắc liệu nó có thích hợp để gọi nó là thứ bậc không). Tôi đang cố gắng tạo kiểu cho bit HTML dưới đây.


  
  • [post title]

    ...

    ...

  • ...

Vì phần#Nội dung thay đổi trên mỗi trang tôi có, tôi muốn duy trì các phong cách nhất quán trên tất cả chúng, vì vậy tôi đã viết một số quy tắc CSS "toàn cầu".

#content {
  color: #000;
  margin-left: 300px;
  max-width: 620px;
  padding: 0px 10px;
  position: relative;
}

#content p,
#content li {
  color: #111;
  font: 16px / 24px serif;
}

Tôi muốn tạo kiểu HTML trong một ul.posts-list khác nhau, vì vậy tôi đã viết các quy tắc này.

li.post-item > * {
  margin: 0px;
}

.item-description {
  color: #FFF;
}

.item-meta {
  color: #666;
}

Tuy nhiên, tôi đã gặp một số vấn đề. Đây là cách Chrome kết xuất CSS:

Hướng dẫn what is overriding my css? - ghi đè css của tôi là gì?

Vì một số lý do, các quy tắc

#content {
  color: #000;
  margin-left: 300px;
  max-width: 620px;
  padding: 0px 10px;
  position: relative;
}

#content p,
#content li {
  color: #111;
  font: 16px / 24px serif;
}
0 đang ghi đè quy tắc của tôi cho
#content {
  color: #000;
  margin-left: 300px;
  max-width: 620px;
  padding: 0px 10px;
  position: relative;
}

#content p,
#content li {
  color: #111;
  font: 16px / 24px serif;
}
1 và
#content {
  color: #000;
  margin-left: 300px;
  max-width: 620px;
  padding: 0px 10px;
  position: relative;
}

#content p,
#content li {
  color: #111;
  font: 16px / 24px serif;
}
2. Ấn tượng của tôi là tên lớp/ID được coi là cụ thể và do đó ưu tiên cao hơn. Tuy nhiên, có vẻ như tôi có một sự hiểu lầm về cách thức hoạt động của CSS. Tôi làm gì sai ở đây?

EDIT: Ngoài ra, tôi có thể đọc thêm về cách thức hoạt động của hệ thống phân cấp này?

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 overriding my css? - ghi đè css của tôi 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.

Làm cách nào để sửa chữa quá trình ghi đè CSS?

Làm thế nào để khắc phục các vấn đề ghi đè phong cách..
Trong Chrome hoặc trình duyệt web của bạn, hãy mở các công cụ nhà phát triển web (Ctrl+Shift+I) trong Chrome trong khi bạn có trang với các vấn đề mở trong trình duyệt của bạn. ....
Đã nhấp vào thanh tra di chuột qua mục đang được đề cập với chuột của bạn. ....
Viết kiểu CSS để ghi đè vấn đề này ..

HTML có thể 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 .

Bạn có thể ghi đè lên CSS không?

Không. Sau một CD hoặc CD-R được tạo, nó không thể được chỉnh sửa, xóa, định dạng hoặc sửa đổi.Nếu bạn đã tạo CD hoặc CD-R và muốn sửa đổi nó, hãy tạo lại nó bằng CD-R mới.Trước khi bạn tiếp tục, hãy đảm bảo bạn có một CD-R trống khác, vì vậy bạn có thể tạo đĩa mới. After a CD or CD-R is created, it cannot be edited, erased, formatted, or otherwise modified. If you've created the CD or CD-R and want to modify it, recreate it using a new CD-R. Before you continue, make sure you have another blank CD-R, so you can create the new disk.

Làm cách nào để ghi đè một hệ thống phân cấp CSS?

Cách duy nhất để ghi đè các kiểu nội tuyến là sử dụng!quan trọng .Nhiều khung JavaScript và thư viện thêm các kiểu nội tuyến.using ! important . Many JavaScript frameworks and libraries add inline styles.