Có bất kỳ lợi thế của SASS so với LESS? [đóng cửa]


36

Tôi đang cố gắng nghiên cứu về các bộ tiền xử lý css này.

Có bất kỳ lợi thế của việc sử dụng sass trên ít hơn như một bộ tiền xử lý css? Các yếu tố mà tôi đang tìm kiếm bao gồm quy mô cộng đồng, sự trưởng thành của dự án phần mềm, v.v.

Tôi biết có một câu hỏi khác liên quan đến vấn đề này, nhưng nó không được viết và đóng một cách xây dựng.

Cập nhật

Có vẻ như bootstrap bây giờ đã sử dụng Sass

Câu trả lời:


32

Chris Coyier có một danh sách tuyệt vời của SASS vs LESS trên tại css-tricks.com . Nó chắc chắn đáng để đọc.

Đối với một số câu hỏi cụ thể của bạn:

cộng đồng

Tôi làm việc hoàn toàn với SASS / La bàn, vì vậy tôi không quen thuộc lắm với cộng đồng của LESS, nhưng tôi cũng không thực sự cần cộng đồng của SASS. Tài liệu của họ là tuyệt vời và đã giải quyết bất kỳ vấn đề tôi đã gặp phải cho đến nay.

Tuy nhiên, đối với những gì nó đáng giá, đây là số liệu thống kê SASS vs LESS mà Chris có trong bài đăng của mình, mà tôi đã cập nhật cho các số hiện tại:

Số lượng sự cố mở trên BÀI: 121
Số lượng sự cố mở trên Sass: 87

Yêu cầu kéo đang chờ xử lý trên BÀI: 13
Yêu cầu kéo đang chờ xử lý trên Sass: 8

Số lần cam kết trong tháng trước ở BÀI: 49
Số lần cam kết trong tháng trước ở Sass: 7

Cần lưu ý, những con số này gần như bị lật khi viết của Chris vào tháng 5 năm 2012. Điều này nói với tôi rằng cả hai đều khá giống nhau về hoạt động phát triển.

Trưởng thành

Về mặt kỹ thuật, Sass già hơn. Nó xuất hiện vào năm 2007, trong khi LESS xuất hiện vào năm 2009. Điều đó nói rằng, những so sánh tôi từng thấy đặt cả hai ở cùng một mức độ "trưởng thành" về các tính năng và không có gì khác.

Cả hai cũng có các khung mang lại nhiều công cụ hơn cho họ. LESS có ít Framework và Centage (ngoài ra, Twitter Bootstrap được xây dựng với LESS). Sass có La bàn, Trọng lực và Tố Tố. Cả hai có thể có nhiều hơn, nếu bạn đào cho họ, nhưng đó là một số trong những người đầu tiên xuất hiện khi bạn tìm kiếm.

Vì vậy, có sự khác biệt thực sự?

Khi nói đến việc viết nó, không thực sự. Nếu bạn sử dụng cú pháp SCSS giống CSS trong Sass (thay vì cú pháp SASS giống Python hơn), bạn chỉ có các khác biệt cú pháp nhỏ điển hình ( @so với $), nhưng về phần lớn, về cơ bản chúng giống nhau.

Hai điểm khác biệt lớn nhất trong mã hóa mà tôi tìm thấy là a) cách họ xử lý các đơn vị khi làm toán và b) cách họ xử lý sự kế thừa. Khi được cung cấp một cái gì đó như 20px + 2em, LESS sẽ bỏ đơn vị thứ hai và giả sử bạn có nghĩa là đơn vị thứ nhất ( 22pxtrong khi xây dựng ), trong khi Sass sẽ đưa ra một lỗi (về cơ bản, gõ không khớp). Với tính kế thừa, LESS coi nó như một hỗn hợp (tôi thực sự không thể giải thích rõ về nó, vì vậy hãy xem phần thông tin của bài viết Tuts + này để biết chi tiết).

Việc một người có vượt trội hơn các loại khác hay không phụ thuộc vào cách bạn muốn nó xử lý mọi việc.

Sự khác biệt lớn nhất khác mà tôi biết là cách thức và nơi mỗi người biên dịch theo mặc định. Sass sử dụng Ruby và biên dịch trên máy chủ, cho phép bạn lưu trữ và gửi tệp CSS đã biên dịch đến máy khách. Mặt khác, LESS mặc định sử dụng tập lệnh less.js để biên dịch CSS một cách nhanh chóng. Tuy nhiên, với việc sử dụng Node.js, LESS có thể biên dịch ở phía máy chủ giống như cách mà Sass làm.

Cái nào?

Vì vậy, nếu về cơ bản chúng giống nhau, bạn nên sử dụng cái nào? Chà, trừ khi bạn thực sự yêu thích cú pháp SASS giống như Python, hoặc thực sự nghĩ rằng việc biên dịch phía máy khách là hướng đi, hoặc bạn rất thích cách gọi thừa kế của người khác, điều đó sẽ quan trọng hơn cho dù bạn muốn có (hay không đã có) Ruby hoặc Node.js được cài đặt.


2
+1 Tóm tắt hay. Trừ khi được thêm vào gần đây, LESS cũng không có gì có thể so sánh với @extend của Sass
steveax

Sự phát triển của LESS dường như đã tăng lên rất nhiều vào cuối. Họ đang thêm một cú pháp @extend trong cú pháp 1.5.0 (: extend ()). Họ cũng đang thêm Bản đồ nguồn trong số những thứ khác.
WraithKenny

WraithKenny - Điều đó về mặt kỹ thuật vẫn đặt họ phía sau Sass. Các bản đồ nguồn được tiêu chuẩn hóa hiện đang ở trong các nhánh thử nghiệm (và chúng đã có "bản đồ nguồn" không chuẩn với --debug-infovà nhận xét dòng cho Firebug và Chrome một vài phiên bản trở lại một thời gian trước, trước khi các bản tiêu chuẩn xuất hiện) và giữ chỗ (về cơ bản, @extend mà không thực sự viết lớp từ đó mở rộng) là phiên bản mới nhất.
Shauna

@Shauna không chắc chắn làm thế nào họ "về mặt kỹ thuật" đằng sau ... LESS đã có "bản đồ nguồn" không chuẩn từ năm ngoái và đã có bản đồ nguồn chuẩn trong bản dựng ổn định mới nhất, không giống như Sass hiện tại.
subhaze

@subhaze - Tại thời điểm các bình luận trước đó, LESS không có cú pháp mở rộng, vì vậy nó vẫn bị tụt lại phía sau trong khía cạnh đó. Ngoài ra, Sass đã thêm tính năng "giữ chỗ" trong các bản dựng ổn định gần đây. Điều đó nói rằng, tôi sẽ không đưa ra chương trình bổ sung cứ sau vài tháng so sánh các tính năng tiên tiến nhất của mỗi bộ. Như tôi đã nói trong câu trả lời của mình, cả hai đều khá giống nhau và khi thêm một tính năng mà cái kia không có, thì cái kia thường không bị bỏ lại phía sau.
Shauna

6

Tôi tin rằng sự lựa chọn của bạn có thể phụ thuộc ít nhất một chút vào những gì bạn đang làm hoặc sử dụng; Tôi làm việc chủ yếu với Rails và nó hỗ trợ Sass cho CSS của nó đến mức nó được tích cực đưa vào khi tạo một dự án mới. Nếu bạn muốn sử dụng một cái gì đó như Bootstrap phổ biến, sử dụng Ít hơn theo mặc định, bạn không phải lo sợ, bởi vì có nhiều loại đá quý phổ biến như bootstrap-sass cho phép bạn sử dụng nó trong dự án của mình.

Đây hoàn toàn là giai thoại, nhưng mỗi ấn tượng mà cá nhân tôi có là Sass có một cộng đồng lớn hơn và được hỗ trợ nhiều hơn, và thật lòng mà nói, tài liệu chính thức cho Sass chi tiết và dài hơn nhiều so với Ít hơn (tăng kích thước phông chữ và đệm cho mọi thứ không phải là một đoạn văn bản dài hơn). Nếu bạn muốn đi vào chi tiết cụ thể, mặc dù tôi không hoàn toàn quen thuộc với Ít hơn, hoàn toàn dựa vào việc xem xét cả hai ngôn ngữ, Sass là người duy nhất có quyền thừa kế bộ chọn. Tôi chắc chắn rằng có sự khác biệt khác mà mọi người có thể giải thích.

Cuối cùng, mọi người đều có sở thích của họ và nếu bạn thấy rằng cái này phù hợp với bạn hơn cái kia, thì bằng mọi cách bạn nên sử dụng nó nếu nó có thể làm những gì bạn cần. Tuy nhiên, trong thời gian sử dụng Sass, tôi chắc chắn rất thích sự rõ ràng và hiệu quả của nó, đặc biệt khi xem xét rằng tôi đang ở trong miền Rails.


Đồng ý, nếu bạn đã dùng Ruby, SASS có ý nghĩa. Tôi là một người JavaScript nhiều hơn nên ÍT cho tôi!
WraithKenny

5

Tôi không chắc liệu Less có gì có thể so sánh được không, nhưng một trong những ưu điểm chính của Sass là thư viện La bàn , cung cấp cho bạn nhiều thành ngữ CSS phổ biến, các bản hack tiêu chuẩn cần thiết cho các trình duyệt cũ hơn và các chức năng CSS3 mà không cần tiền tố trình duyệt, không cần đề cập đến việc tạo CSS tự động cho hình ảnh sprite.

Một lợi thế khác - ít nhất là đối với tôi - là Sass cho phép một cú pháp giống như Python mà tôi thấy dễ đọc hơn nhiều.


So sánh với La bàn? Tôi không biết, nhưng họ có Bootstrap của Twitter.
WraithKenny

Chà, chúng là những con thú khác nhau. Bootstrap là một tập hợp các quy ước và vật dụng, trong khi Compass os là một bộ sưu tập các mixins có thể tái sử dụng
Andrea

Ngoài ra, Bootstrap có sẵn trong Sass.
Shauna
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.