Ghi đè element.style bằng CSS


83

Tôi có một trang HTML từ trình tạo trang và nó đưa stylethuộc tính trực tiếp vào phần tử. Tôi thấy nó được coi là element.style.

Tôi muốn ghi đè nó bằng CSS. Tôi có thể so khớp phần tử, nhưng nó không ghi đè lên nó.

ảnh chụp màn hình

Làm cách nào để ghi đè kiểu bằng CSS?


2
Tìm nguồn của kiểu tiêm và loại bỏ nó? Nếu nó không có trong nguồn tài liệu của bạn, nó có thể đến từ JavaScript ở đâu đó.
cimmanon

2
Làm thế nào bạn có thể tìm thấy nguồn?
Shailen

2
command + shift + f (trên máy Mac) hoặc ctrl + shift + f (trên pc)
maahd

Lưu ý rằng một giải pháp thay thế trong JS có thể là xóa thuộc tính đã thêm bằng cách sử dụng removeProperty(), ieeg document.querySelector("li").style.removeProperty("display"); Sau đó, bạn cũng không cần phải cung cấp giá trị mặc định mới (giống như bạn phải làm với !important, nhưng chuỗi kế thừa chỉ "nhảy vào".
rugk Ngày

Câu trả lời:


121

Mặc dù nó thường bị khó chịu nhưng về mặt kỹ thuật, bạn có thể sử dụng:

display: inline !important;

Nó thường không phải là thực hành tốt nhưng trong một số trường hợp có thể cần thiết. Những gì bạn nên làm là chỉnh sửa mã của mình để ngay từ đầu bạn không áp dụng một kiểu cho các <li>phần tử.


17
phương tiện element.style rằng đó là trong đánh dấu, vì vậy trong html của bạn, bạn sẽ thấy<li style="display: none;">
DiscoInfiltrator

1
Trong jQuery khi sử dụng phương thức show (), display: block; được áp dụng cho các kiểu phần tử. Tôi muốn nó được hiển thị: inline-block; Tuy nhiên. Đầu tiên tôi đã giải quyết nó bằng cách không sử dụng phương pháp này và sử dụng .css ('display', 'inline-block'); thay thế. Tuy nhiên, sau khi đọc ví dụ này, tôi nghĩ rằng tôi sẽ chuyển sang sử dụng! Important.
Simon Bengtsson

jQuery đặt thuộc tính hiển thị thành bất kỳ thuộc tính mặc định nào cho phần tử mà nó đang hiển thị.
folktrash

1
Theo nghĩa đen chỉ thốt lên "gtf ra khỏi đây" khi điều này làm việc cho tôi, buồn bã bạn gái của tôi
jag

2
Hầu hết các nhận xét này đều cho rằng họ có quyền truy cập vào mã nguồn. Tôi sẽ không cần phải thực hiện những thực hành xấu này nếu người viết mã không đưa ra các thư viện với các kiểu nội tuyến được thêm vào.
TallOrderDev

20

CSS này sẽ ghi đè ngay cả JavaScript:

#demofour li[style] {
    display: inline !important;
} 

hoặc chỉ cho một đầu tiên

#demofour li[style]:first-child {
    display: inline !important;
}

12

element.style đến từ đánh dấu.

<li style="display: none;">

Chỉ cần xóa stylethuộc tính khỏi HTML.


Tôi không thêm <li style = "display: none;">
DW

Nó được tiêm ở đâu đó. Tôi đang tìm kiếm nó quá, tôi nghĩ rằng Google Maps không D này:
icedwater

1
Nếu nó tiêm hơn ông không thể đạt được nó và loại bỏ nó mình, ông đã để ghi đè lên nó
jonyB

5

Việc sử dụng! Important sẽ ghi đè element.style qua CSS như Change

color: #7D7D7D;

đến

color: #7D7D7D !important;

Nên làm vậy.


5

Tất nhiên, thủ thuật! Quan trọng là yếu tố quyết định ở đây, nhưng việc nhắm mục tiêu cụ thể hơn có thể giúp không chỉ thực sự áp dụng ghi đè của bạn (tiêu chí trọng số có thể chiếm ưu thế! Quan trọng) mà còn tránh ghi đè các yếu tố không mong muốn.

Với các công cụ dành cho nhà phát triển trên trình duyệt của bạn, hãy xác định giá trị chính xác của thuộc tính kiểu vi phạm; ví dụ:

"font-family: arial, helvetica, sans-serif;"

hoặc là

"display: block;"

Sau đó, quyết định nhánh bộ chọn nào bạn sẽ ghi đè; bạn có thể mở rộng hoặc thu hẹp lựa chọn của mình để phù hợp với nhu cầu của bạn, ví dụ:

p span

hoặc là

section.article-into.clearfix p span

Cuối cùng, trong custom.css của bạn, hãy sử dụng bộ chọn [thuộc tính ^ = value] và khai báo! Important:

p span[style^="font-family: arial"] {
  font-family: "Times New Roman", Times, serif !important;
}

Lưu ý rằng bạn không cần phải trích dẫn toàn bộ giá trị thuộc tính kiểu, chỉ đủ để khớp chuỗi một cách rõ ràng.


0

Theo hiểu biết của tôi Hệ thống nội tuyến đến trước vì vậy lớp css sẽ không hoạt động.

Sử dụng Jquery như

$(document).ready(function(){

   $("#demoFour li").css("display","inline");
  });

You can also try 

#demoFour li { display:inline !important;}

0

Sử dụng JavaScript.

Ví dụ:

var elements = document.getElementById("demoFour").getElementsByTagName("li");
for (var i = 0; i < elements.length; i++) {
    elements[i].style.display = "inline";
}

0

bạn có thể ghi đè kiểu trên css của mình bằng cách tham chiếu đến thuộc tính vi phạm của kiểu phần tử. Trong trường hợp của tôi, hai mã này được đặt là 15px và đang làm cho hình nền của tôi chuyển sang màu đen. Vì vậy, tôi ghi đè chúng bằng 0px và đặt! Important nên nó sẽ được ưu tiên

.content {
    border-bottom-left-radius: 0px !important;
     border-bottom-right-radius: 0px !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.