Làm cách nào để ghi đè các kiểu nội tuyến bằng CSS bên ngoài?


99

Tôi có đánh dấu sử dụng kiểu nội tuyến, nhưng tôi không có quyền truy cập để thay đổi đánh dấu này. Làm cách nào để ghi đè các kiểu nội tuyến trong tài liệu chỉ sử dụng CSS? Tôi không muốn sử dụng jQuery hoặc JavaScript.

HTML:

<div style="font-size: 18px; color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

CSS:

div {
   color: blue; 
   /* This Isn't Working */
}

2
Tại sao lại sử dụng các kiểu nội tuyến nếu bạn muốn ghi đè chúng?
Sinister Beard

36
@BFDatabaseAdmin Anh ta có thể không truy cập được vào đánh dấu nơi các kiểu nội tuyến được khai báo.
TylerH

Câu trả lời:


176

Cách duy nhất để ghi đè kiểu nội tuyến là sử dụng !importanttừ khóa bên cạnh quy tắc CSS. Sau đây là một ví dụ về nó.

div {
        color: blue !important;
       /* Adding !important will give this rule more precedence over inline style */
    }
<div style="font-size: 18px; color: red;">
    Hello, World. How can I change this to blue?
</div>

Lưu ý quan trọng:

  • Sử dụng !importantkhông được coi là một thực hành tốt . Do đó, bạn nên tránh cả hai !importantvà kiểu nội tuyến.

  • Việc thêm !importanttừ khóa vào bất kỳ quy tắc CSS nào sẽ cho phép quy tắc đó đứng trước bắt buộc so với tất cả các quy tắc CSS khác cho phần tử đó.

  • Nó thậm chí còn ghi đè các kiểu nội tuyến từ đánh dấu.

  • Cách duy nhất để ghi đè là sử dụng một !importantquy tắc khác , được khai báo với độ đặc hiệu CSS cao hơn trong CSS hoặc độ cụ thể CSS bằng nhau sau này trong mã.

  • Phải đọc - Đặc tính CSS theo MDN 🔗


1
rõ rằng phong cách phần nó lên cho anh ta thực sự nó không phải là cần thiết mà ông đang sử dụng chỉ cho trọng các css inline
Rohit Agrawal

1
tôi biết nhưng cùng tôi nói quan trọng sẽ chỉ làm tăng số điểm cho tài sản cụ thể, ông có thể được sử dụng các tài sản khác (không phải cho trọng) trong một số khối!
Rohit Agrawal

Tại sao! Thực hành xấu quan trọng?
Sinister Beard,

1
@BFDatabaseAdmin vì bạn không thể ghi đè lên rằng sau này nếu bạn cần cho bất kỳ trường hợp đặc biệt
Rohit Agrawal

1
@BFWebAdmin, vấn đề là đôi khi bạn không có lựa chọn. ví dụ: "huy hiệu" từ recaptcha vô hình mới có thể được tạo kiểu nhưng có một phần kiểu nội tuyến, do đó bạn phải ghi đè chúng như thế này hoặc bằng js và thích một giải pháp CSS thuần túy hơn.
My1

26

inline-stylestrong một tài liệu có mức độ ưu tiên cao nhất, vì vậy, ví dụ: nếu bạn muốn thay đổi màu của một divphần tử thành blue, nhưng bạn inline stylecó một thuộc colortính được đặt thànhred

<div style="font-size: 18px; color: red;">
   Hello World, How Can I Change The Color To Blue?
</div>
div {
   color: blue; 
   /* This Won't Work, As Inline Styles Have Color Red And As 
      Inline Styles Have Highest Priority, We Cannot Over Ride 
      The Color Using An Element Selector */
}

Vì vậy, tôi có nên sử dụng jQuery / Javascript không? - Câu trả lời là KHÔNG

Chúng ta có thể sử dụng element-attrBộ chọn CSS với !important, lưu ý, !importantđiều quan trọng ở đây là quan trọng, nếu không nó sẽ không chạy quá các kiểu nội tuyến ..

<div style="font-size: 30px; color: red;">
    This is a test to see whether the inline styles can be over ridden with CSS?
</div>
div[style] {
   font-size: 12px !important;
   color: blue !important;
}

Bản giới thiệu

Lưu ý: Sử dụng !importantCHỈ sẽ hoạt động ở đây, nhưng tôi đã sử dụng div[style]bộ chọn để chọn cụ thể divstyle thuộc tính


2
Vì vậy, tôi có nên sử dụng kiểu nội tuyến không? - Câu trả lời là KHÔNG :-)
PeeHaa 29/05

"Vì vậy, tôi có nên sử dụng jQuery / Javascript? - Câu trả lời là KHÔNG" Tại sao? Nếu tôi đang làm việc trong một môi trường (chẳng hạn như Sharepoint) nơi các kiểu nội tuyến được thêm vào các phần tử bởi một thực thể không thể kiểm soát tại sao tôi không sử dụng Jquery để xóa các kiểu nội tuyến vi phạm để chủ đề bên ngoài của trang web hiển thị thông qua? Có vẻ như một giải pháp sơ chế hơn là nổ tung! Quan trọng ở một đặc điểm mà tôi có thể muốn ghi đè trong một trường hợp cụ thể sau này.
Neberu

2
@Neberu - Vì JS có thể bị chặn / tắt trên trình duyệt. Sử dụng !importantkhông thể AFAIK.
Tony

1
Ngoài ra js nói chung là imo không tốt, ý tôi là bạn có mở các tệp thực thi do bạn gửi từ một người không xác định không? Tôi đoán là không, nhưng một trình duyệt thực hiện điều này với mỗi lần nhấp
My1 13/12/16

11

Bạn có thể dễ dàng ghi đè kiểu nội tuyến ngoại trừ !importantkiểu nội tuyến

vì thế

<div style="font-size: 18px; color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
   color: blue !important; 
   /* This will  Work */
}

nhưng nếu bạn có

<div style="font-size: 18px; color: red !important;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
   color: blue !important; 
   /* This Isn't Working */
}

bây giờ nó sẽ redchỉ là .. và bạn không thể ghi đè nó


1
Điều này có gì khác so với các câu trả lời đã được thêm vào nhiều tháng trước đó?
Sinister Beard,

4
@BFDatabaseAdmin Câu trả lời này mô tả hành vi khi kiểu nội tuyến có !important, một điểm không nằm trong bất kỳ câu trả lời nào khác. Đây có thể không phải là một câu trả lời hoàn toàn độc lập nhưng điều này khác với các câu trả lời khác được cung cấp.
grg

nhưng sau đó một lần nữa sử dụng một kiểu nội tuyến với quan trọng thực sự là quá mức cần thiết vì theo mặc định, nó vẫn có mức ưu tiên cao nhất.
My1

6
<div style="background: red;">
    The inline styles for this div should make it red.
</div>

div[style] {
   background: yellow !important;
}

Dưới đây là liên kết để biết thêm chi tiết: http://css-tricks.com/override-inline-styles-with-css/


5
Điều này có gì khác so với các câu trả lời đã được thêm vào nhiều tháng trước đó?
Sinister Beard,

1
Có lẽ không có gì khác biệt nếu bạn đã biết câu trả lời ... nhưng đối với một số người mới, tôi hy vọng nó có thể giúp họ..đặc biệt là liên kết nơi nó chi tiết hơn ... dù sao cũng cảm ơn bạn đã bình luận.
jroi_web

1

được sử dụng !importanttrong thuộc tính CSS

<div style="color: red;">
    Hello World, How Can I Change The Color To Blue?
</div>

div {
        color: blue !important;
    }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.