2010-08-23 35 views
16

Tôi cần duy trì & cải thiện trang web hiện tại và tôi đang chìm đắm trong dự phòng mà tôi đã phát hiện trong biểu định kiểu CSS của nó. Với sự tồn tại của các yếu tố dự phòng và phi phương pháp hiện tại, thật khó để theo dõi và dự đoán sự thay đổi nhỏ sẽ lan truyền như thế nào qua hệ thống, hoặc nơi áp dụng thay đổi để đạt được hiệu quả nhất định, mà không mất nhiều thời gian để học lại Tệp CSS và thử nghiệm.Công cụ "Normalizer" CSS?

Tôi đã sử dụng Firebug mới nhất và trình bổ sung "Nhà phát triển web" cho Firefox, nhưng rõ ràng chúng không đủ cho tôi. Tôi cần một công cụ có thể cho tôi biết nơi thừa "ghi đè" là và có lẽ đề xuất một chương trình xếp tầng tốt hơn.

Nói cách khác, hãy giúp tôi tạo tệp CSS ngắn nhất cung cấp cùng chức năng hình ảnh chính xác mà tôi có ngay bây giờ.

Để làm rõ thêm, tôi không tìm kiếm công cụ thay thế "# 000000" bằng "# 000", "0,5em" bằng ".5em", "trắng" bằng "#FFF", v.v. địa chỉ "số lượng ký tự" dư thừa, nhưng không giải quyết sự thừa "tầng tầng"). Ví dụ, tôi đang tìm kiếm một công cụ có thể cho tôi biết rằng thuộc tính "font-size: 10px" của phần tử con là thừa vì nó đã được thừa kế từ phần tử cha của nó.

Tính năng nâng cao hơn: thuộc tính "color: # 000000" của một lớp hoặc id là thừa vì nó không được sử dụng trong bất kỳ tệp HTML/PHP nào trên trang web.

Có công cụ thực hiện loại "bình thường hóa" này tự động không?

+2

Thực sự những gì bạn đang tìm kiếm là trình biên dịch CSS với khả năng tối ưu hóa và nhập. Tôi tự hỏi liệu có cái gì đó như thế không? Có vẻ như một vấn đề thú vị để giải quyết. – gtrak

Trả lời

2

Đối với việc tìm kiếm trùng lặp/không sử dụng/CSS không cần thiết dựa trên đánh dấu của bạn, bạn có thể thử , hoặc Dust-Me Selectors (như @Aaron D đề cập), hoặc CSS Crunch. Hai phần cuối cùng là các phần mở rộng của trình duyệt (tương ứng với Firefox và IE), sẽ chỉ xem xét một trang, trong khi WARI có ý định xem toàn bộ một trang. Tuy nhiên, tôi không có nhiều may mắn để WARI hoạt động.

0

Bạn có thể thử YUI Compressor. Làm việc cho các tệp CSS và Javascript.

+4

Máy nén YUI có nhiều chi tiết hơn, và các hoạt động của nó được giải thích [ở đây] (http://developer.yahoo.com/yui/compressor/css.html). Nó không làm những gì OP yêu cầu. – NullUserException

+0

Bạn nói đúng. Cảm ơn bạn về thông tin. YUI sẽ chỉ cung cấp cho bạn tệp CSS ngắn nhất, nhưng sẽ không xóa bỏ dự phòng. – goenning

0

Bạn có thể dùng thử CSS Tidy (online version). Nó sẽ giảm dự phòng, tùy ý chuyển đổi sang phong cách viết tắt, và có thể được sử dụng để tạo ra đầu ra được rút gọn và đầu ra khá/định dạng.

+0

Cảm ơn bạn đã liên kết tới phiên bản trực tuyến của CSS Tidy. Tuy nhiên, công cụ này không loại bỏ sự dư thừa theo nghĩa mà tôi đã nêu ở trên. Tôi chỉ thử nó và tất cả nó làm là thay thế "# 000000" với "# 000", "0.5em" với ".5em", "trắng" với "#FFF" - đó rõ ràng không phải là những gì tôi muốn. Nó giải quyết sự thừa "số ký tự", nó không giải quyết sự thừa "tầng tầng". Tôi đang tìm một công cụ mà sẽ cho tôi biết, ví dụ, rằng một thuộc tính "font-size: 10px" của một phần tử con là thừa vì nó đã được thừa kế từ cha mẹ của nó. –

+1

không thực sự những gì ông đã yêu cầu – gtrak

+0

Nó sẽ chăm sóc dự phòng hợp lý trong một biểu định kiểu (nghĩa là nó sẽ kết hợp các kiểu và loại bỏ các khai báo trùng lặp của cùng một kiểu). Tuy nhiên, nó sẽ không thể xác định sự thừa từ cấu trúc HTML của bạn, điều đó đúng. – bdukes

1

Tôi không biết về một công cụ như vậy và nhìn vào sự phức tạp của CSS, tôi thậm chí không chắc chắn có thể giải quyết vấn đề này (một số kiểu CSS chỉ có để theo dõi các trình duyệt cũ hơn). Vậy một công cụ có giá trị bao nhiêu để tạo ra một CSS tuân thủ W3C mới mà không hiển thị trên hầu hết các trình duyệt do lỗi?

Điều đó nói rằng, bạn nên có một cái nhìn tại Envjs cho phép bạn đọc một trang web trong trình duyệt được mô phỏng và sau đó kiểm tra kết quả. Không hoàn hảo nhưng có thể giúp bạn bắt đầu.

+1

Hacks như vậy hoặc là không nên được sử dụng ở tất cả hoặc, nếu hoàn toàn cần thiết, kiểm dịch trong stylesheet riêng của họ, vì vậy tôi không tin rằng họ phủ nhận tính hữu ích của một công cụ như vậy. –

+0

@BobbyJack Vâng, đó là tốt đẹp trong lý thuyết. Nhưng ví dụ, OP dường như là với một vấn đề của tập tin (s) mà ban đầu không được thực hiện bởi anh ta. –

2

Kiểm tra SASS, đây là trình biên dịch CSS có ngôn ngữ và cú pháp riêng, nhưng có khả năng nhập CSS. http://sass-lang.com/

Tôi tự hỏi, nếu chỉ một chu kỳ nhập/xuất sẽ thực hiện thủ thuật cho bạn?

Chỉnh sửa: Dường như chu trình xuất/nhập không đủ, nhưng SASS cung cấp cho bạn các tiện nghi giúp cuộc sống của bạn dễ dàng hơn trong khi tái cấu trúc.

+1

Ngoài Sass, hãy sử dụng La bàn để quản lý dự án biểu định kiểu của bạn. Nó xử lý cấu hình xây dựng và có một thư viện các thành ngữ CSS hữu ích để rút ngắn mã nguồn của bạn. Xuất/nhập đơn giản sẽ không thay đổi CSS của bạn. Bạn cần phải tái cấu trúc nó thành nhiều phần tái sử dụng hơn bằng cách sử dụng mixin của Sass và mở rộng các tính năng. –

2

Tôi nghĩ bạn đang tìm kiếm chén thánh của CSS. Tôi không nghĩ nó tồn tại. Vấn đề là bạn không bao giờ biết chính xác những gì trình duyệt sẽ hiển thị và cần trong biểu định kiểu của bạn. Tôi đã sử dụng plugin Dust-me Selectors cho Firefox để giúp định vị các kiểu không sử dụng, nhưng để tự động thực hiện nó là một tác vụ cao.

Điều đó nói rằng, tôi nghĩ rằng việc sử dụng một khung như SASS (như đã đề cập) hoặc LESS là một câu trả lời về câu hỏi của bạn.Các khung công tác loại bỏ rất nhiều sự dư thừa và làm cho CSS của bạn nhỏ gọn. Tôi thích LESS hơn SASS vì những điểm tương đồng với CSS.

+0

So sánh với http://stackoverflow.com/questions/3518740/less-sass-css-opposite-from-minification-optimizations – NullUserException

2

Aaron làm cho một điểm tốt về sự phức tạp. Ví dụ, một công cụ như vậy sẽ cần truy cập vào không chỉ các tệp CSS, mà còn cả HTML (nó sẽ không thể xác định những thứ như thừa kế, nếu không). Sau đó, bạn có tìm kiếm nội dung nào đó sẽ thu thập toàn bộ trang web và đưa mọi trang vào tài khoản hay có thể cung cấp đánh dấu từ các tệp không? Nó cũng có khả năng là một công cụ như vậy sẽ sản xuất CSS mà ít bảo trì hơn một nhà thiết kế web phong nha sẽ sản xuất (Tôi đang nghĩ rằng các bộ chọn rút ngắn mà sau đó có thể chỉ cần được 'kéo dài lại' vào một ngày sau đó). Đó là không có vấn đề nếu đây chỉ là một hành động tạm thời, nhưng tôi tự hỏi tại sao bạn sẽ cần phải làm điều này ở nơi đầu tiên.

Các vấn đề liên quan