Làm cách nào tôi có thể tìm thấy các quy tắc CSS không được sử dụng / chưa áp dụng trong biểu định kiểu?


18

Tôi đã có một tệp CSS lớn và một tệp HTML. Tôi muốn tìm hiểu những quy tắc nào không được sử dụng trong khi hiển thị tệp HTML. Có công cụ nào cho việc này không?

Tệp CSS đã phát triển trong vài năm và từ những gì tôi biết không ai từng xóa bất cứ thứ gì khỏi nó - mọi người chỉ cần viết lại các quy tắc ghi đè mới.

EDIT: Chúng tôi khuyên bạn nên sử dụng Công cụ chọn Dust-Me hoặc Công cụ hiệu suất trang web của Chrome. Nhưng cả hai đều hoạt động ở cấp độ của bộ chọn, và không phải là quy tắc riêng lẻ. Tôi đã có rất nhiều trường hợp trong đó một quy tắc bên trong bộ chọn luôn bị ghi đè - và đây là điều mà tôi hầu như muốn loại bỏ. Ví dụ:

body { color: white; padding: 10em; }
h1 { color: black; }
p { color: black; }
...
ul { color: black; }

Tất cả văn bản trong HTML của tôi nằm trong một số phần tử trình bao bọc, vì vậy nó không bao giờ có màu trắng. bodyPhần đệm luôn hoạt động, do đó, tất nhiên toàn bộ bộ bodychọn không thể được gỡ bỏ. Và tôi cũng muốn thoát khỏi những quy tắc vô dụng như vậy.

EDIT: Và một trường hợp khác của quy tắc vô dụng: khi nó sao chép quy tắc hiện có mà không thay đổi bất cứ điều gì:

a       { margin-left: 5px; color: blue; }
a:hover { margin-left: 5px; color: red; }

Tôi rất vui khi thoát khỏi lần thứ hai margin-left... một lần nữa đối với tôi, những công cụ đó không tìm thấy những thứ như vậy.

EDIT: Tôi đánh giá cao tất cả các câu trả lời, nhưng thật đáng buồn là các công cụ bạn đề xuất không đưa ra bất kỳ đề xuất hữu ích nào. Tôi nêu lên câu trả lời của bạn, nhưng tôi sẽ chờ một công cụ thực hiện mọi thứ chi tiết hơn, như được chỉ định ở trên.

Cảm ơn bạn,


Bạn có thể coi việc thiếu bất kỳ công cụ phù hợp nào là cơ hội: vì bạn hiểu những gì bạn cần, bạn có thể là người tốt nhất để tạo ra một công cụ như vậy. Bạn có thể kiểm tra mã của các công cụ hiện có để tìm ý tưởng và kỹ thuật, sau đó xây dựng một cái gì đó hoạt động ở cấp độ quy tắc thay vì bộ chọn. Cơ hội của bạn tại danh tiếng và tài sản! ... tốt, có lẽ chỉ là danh tiếng;)
iconoclast

@Brandon: câu hỏi này chỉ cần nhấn vào câu hỏi đáng chú ý của người đánh dấu, vì vậy bạn có thể đúng :-)
liori

Câu trả lời:


8

Lựa chọn mở rộng của Dust Me

Trong Công cụ dành cho nhà phát triển của Chrome, bạn có thể sử dụng công cụ Hiệu suất trang web để tìm các quy tắc CSS không được sử dụng.


Tuyệt, tôi sẽ kiểm tra ngay!
liori

Những công cụ này chỉ có thể loại bỏ các bộ chọn vô dụng. Tôi làm rõ câu hỏi của tôi.
liori

2
@liori: Tôi không nghĩ rằng điều này là đáng tin cậy có thể. Trong ví dụ về lề của bạn, quy tắc lề thứ hai có vẻ không cần thiết nhưng nó có độ đặc hiệu cao hơn và có thể ghi đè lên quy tắc sau. Ví dụ, nếu một lớp .abccó lề khác, tôi <a class="abc">sẽ thay đổi lề của nó khi di chuột. Bây giờ có lẽ không phải là những gì bạn dự định, nhưng nó chắc chắn có thể, và bạn không thể xóa bỏ quy tắc trùng lặp đó một cách mù quáng.
DisgruntledGoat

@DisgruntledGoat: Tôi đang nghĩ về một trường hợp của một thế giới khép kín: nếu nó không được chỉ định, nó không tồn tại. Vì vậy, nếu không có định nghĩa cho a.abchoặc không có <a class="abc"/> ở bất kỳ đâu trong HTML, thì nó không tồn tại. Dù sao, tôi đã hoàn thành nhiệm vụ khiến tôi phải hỏi câu hỏi này ở đây và tôi đã kết thúc lên với việc áp dụng rất nhiều heuristic. Tôi đã thử Công cụ dành cho nhà phát triển của Chrome nhưng chúng không giúp tôi nhiều.
liori

5

Bạn cũng có thể xem Unuse-CSS.com Công cụ này sẽ khám phá các trang của bạn và xây dựng một tệp CSS được tối ưu hóa mà không cần các bộ chọn không sử dụng


4

Tôi luôn thích sử dụng CSS . Đây là một plugin cho Fireorms và cho phép bạn quét trang và xem quy tắc CSS nào không được áp dụng. Nó thậm chí sẽ tự động quét và hoạt động trên nhiều trang.


2

Kiểm tra uncss, đó là một mô-đun nút.

"UnCSS là một công cụ loại bỏ CSS không sử dụng khỏi các bảng định kiểu của bạn. Nó hoạt động trên nhiều tệp và hỗ trợ CSS được tiêm Javascript."

https://www.npmjs.com/package/uncss

Chỉnh sửa sau khi nhận xét:

Tôi nghĩ rằng bạn đang yêu cầu hai điều khác nhau:

  1. Tự động loại bỏ các quy tắc không sử dụng, đây là những gì uncss có thể làm cho bạn. Tôi cũng đã tạo công cụ này, CSS byebye, nhưng nó không tự động như bạn hỏi: https://www.npmjs.com/package/css-byebye

  2. Tối ưu hóa biểu định kiểu nơi các quy tắc có thể được hợp nhất / đơn giản hóa.

Trong trường hợp đó, tôi muốn giới thiệu hai công cụ thực hiện loại việc này:

Họ thực hiện ít nhiều cùng một sự tối ưu, đôi khi người này có kết quả tốt hơn người kia và đôi khi điều đó ngược lại. Nó phụ thuộc vào bản định kiểu của bạn. (bạn cũng có thể chạy cái khác: P)

Tôi sử dụng chúng như là một phần của quá trình xây dựng với tiếng càu nhàu. Vì vậy, nó không thực sự là một điều trực quan như bạn yêu cầu nhưng họ làm những điều tối ưu mà bạn muốn.

Đây là những gì họ nói về CSSO (thông tin đầy đủ ở đây: https://en.bem.info/tools/optimulators/csso/ )

Tối ưu hóa cấu trúc:

  • Sáp nhập các khối với bộ chọn giống hệt nhau
  • Sáp nhập các khối có đặc tính giống hệt nhau
  • Loại bỏ các thuộc tính ghi đè
  • Loại bỏ các thuộc tính tốc ký bị ghi đè
  • Loại bỏ các bộ chọn lặp lại
  • Hợp nhất một phần các khối
  • Tách một phần khối
  • Loại bỏ quy tắc trống và quy tắc
  • Giảm thiểu các thuộc tính lề và đệm

Đánh giá từ trang chính, nó hoạt động ở cấp độ chọn. Nó thực sự có thể loại bỏ các quy tắc trong hai trường hợp ví dụ tôi đã đề cập trong câu hỏi không?
liori 17/2/2015

Tôi đã chỉnh sửa câu trả lời của tôi. Tôi đã thử nghiệm ví dụ đầu tiên của bạn với giao diện web CSSO: result: body {color: #fff; padding: 10em} h1, p, ul {color: # 000}
Kev

1

@ John: công cụ tuyệt vời, cảm ơn vì liên kết

@liori: Tôi cũng rất khuyến nghị plugin Firefox Web Developer cho phép bạn hiển thị tên / thuộc tính của phần tử, chỉnh sửa css trong thời gian thực (không ghi vào tệp css của bạn) để bạn có thể chỉnh sửa và kiểm tra các thay đổi css mà không cần faff về việc phải lưu và tải lên css của bạn 3 giây một lần. + tải nhiều tính năng hơn.

Ngoài ra còn có một trình kiểm tra DOM rất hay cắm vào Fireorms cũng cắm vào và rất tốt để phân loại Javascript.


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.