Có một công cụ chuyển đổi css thành less.css không?


21

Tôi có một tệp CSS khá lớn, mà tôi muốn chuyển đổi thành ít hơn. Khi tôi viết CSS tôi không biết ít.css, nhưng bây giờ tôi vẫn muốn sử dụng CSS cũ của mình.

Có một công cụ có thể giúp tôi chuyển đổi nó tự động không?


xem các chỉnh sửa của tôi dưới đây.
fatnjazzy

Bạn nên kiểm tra phản hồi của @Simone Carletti và có thể mở rộng về những gì bạn thực sự hỏi một chút. Có thể không có "chuyển đổi" thực sự cần thiết, ngoài việc đổi tên tệp của bạn.
Su '

Thật thú vị, nhưng tôi tự hỏi liệu có đáng để thêm 33KB mã JS (less.js) để giảm kích thước tệp CSS hay không.
Marco Demaio

1
Tôi không sử dụng trình biên dịch JavaScipt rõ ràng. Và kích thước của CSS không phải là lý do tại sao tôi sử dụng nó. Bảo trì là lý do. :)
js-coder

Câu trả lời:



15

Thực tế, bạn không cần bất kỳ công cụ chuyển đổi nào để bắt đầu làm việc với LESS. Cú pháp LESS tương thích ngược với CSS . Nó có nghĩa là bất kỳ tệp CSS nào cũng là tệp LESS hợp lệ.

Chỉ cần lấy CSS của bạn và đổi tên nó thành tệp LESS. Sau đó sử dụng các tính năng dành riêng cho LESS cùng với các thay đổi của bạn. Bạn càng cập nhật tệp, bạn càng có thể sử dụng các tính năng LESS.

Tôi đã làm tương tự cho SCSS và một dự án rất lớn với 10 tệp CSS. Gần như không thể (và rất lãng phí thời gian) để viết lại tất cả CSS bằng SCSS. Tôi chỉ đơn giản đổi tên nó, sau đó mỗi khi tôi làm việc với tệp CSS, tôi đã thực hiện tái cấu trúc nhỏ trên mã để tận dụng lợi thế của mixins, các biến, v.v.


Điều này mang đến một điểm thực sự tốt. Các câu trả lời cho đến nay dường như tập trung vào phần "chuyển đổi" của câu hỏi, thực hiện mixins, v.v. và không chỉ là liệu tệp hiện tại có thể được sử dụng trong chuyển đổi sang quy trình làm việc LESS hay không.
Su '

6

Bạn đã xem ít nhất? Chuyển đổi CSS tốt hơn nhiều so với Lessify. Cụ thể, Lessify không tối ưu hóa các lớp học của bạn rất tốt. Nó sao chép trình duyệt đặt lại vào tất cả các mixin được tạo của nó, tạo các thuộc tính dự phòng. Rõ ràng là nó vẫn ở giai đoạn thử nghiệm. Không tiện ích nào có thể xác định ngữ nghĩa, vì vậy chúng không thể chuyển đổi giá trị thành biểu thức, vars hoặc mixin tham số.

Ít nhất là một công việc tối ưu hóa tốt hơn và dường như có nhiều chức năng hơn. Nó thậm chí còn xử lý giả cho bạn:

http://toki-woki.net/p/least/

Các công cụ này rất lý tưởng để làm việc với các tệp CSS có sẵn từ trước. Dưới đây là các bước tôi khuyên để chuyển đổi CSS sang LESS (Đảm bảo bạn giữ một bản sao của các tệp CSS gốc):

  1. Nếu bạn đang làm việc với một số tệp CSS phụ gia, hãy hợp nhất chúng vào một tệp CSS. Điều này đảm bảo mọi thứ đều được BÀI và tối ưu hóa cùng nhau.

  2. Chạy mã CSS kết quả thông qua tiện ích làm sạch CSS trực tuyến. Tôi đã có kết quả tốt với Cleancss: http://www.cleancss.com/ . Điều này sẽ loại bỏ bất kỳ đánh dấu ngoại lai và dự phòng nào có thể không bị bắt bởi trình chuyển đổi LESS.

  3. Xóa @Media và mọi kiểu đặt lại mà bạn có trong tệp CSS. Họ có thể tạo ra vấn đề hoặc giới thiệu dự phòng có thể. Có lẽ là một ý tưởng tốt để giữ lại các tập tin trong một tập tin riêng biệt.

  4. Dán tệp CSS kết quả vào Least và xem con thú.

  5. Giới thiệu lại thiết lập lại của bạn và @screen.

  6. Bây giờ bạn đã hoàn thành, đi qua từng thuộc tính và tìm các ứng cử viên tốt để tái cấu trúc và biến chúng thành các biến và biểu thức LESS. Các thuộc tính phông chữ và màu CSS là những yếu tố dễ nhất để tìm ra, tìm kiếm toàn cầu đơn giản và thay thế hoạt động tốt. Cuối cùng, bạn có thể quyết định xem bạn có muốn chia nhỏ tệp đơn thành các tệp logic nhỏ hơn không. Bạn có thể thấy rằng quá trình này khiến bạn sắp xếp lại các tệp của mình theo một cách khác.

Tôi không phải là tác giả của Least, chỉ là một người đang tìm kiếm một công cụ tương tự và quyết định nói với thế giới về nó.


Những người chuyển đổi không hiểu @import? Tôi nghĩ rằng LESS có thể phân tích các @importcâu lệnh và hợp nhất tất cả các bảng định kiểu của bạn thành một CSS duy nhất khi các tệp LESS của bạn được biên dịch. Có vẻ như việc bỏ tất cả CSS được sắp xếp gọn gàng của bạn vào một biểu định kiểu khổng lồ duy nhất để chuyển đổi nó thành LESS sẽ là một bước lùi cho khả năng bảo trì.
Lèse majesté

Họ làm vậy, nhưng hãy nhớ rằng các công cụ này tồn tại trực tuyến nên bạn phải cắt và dán chúng vào trường văn bản để nó không có quyền truy cập vào biểu định kiểu bên ngoài của bạn.
Joel Rodgers

Ah, tôi đã không thực sự nhấp vào liên kết. Tôi cho rằng chúng là những công cụ để bàn. Điều đó không có ý nghĩa sau đó.
Lèse majesté

5

Tôi không nghĩ có bất kỳ cách nào để trình chuyển đổi biết bạn muốn làm gì với phần lớn mã.

Chẳng hạn, nó không nhất thiết phải biết những biến bạn muốn sử dụng. Hoặc làm thế nào để tạo mixin hoặc chức năng.

Tôi nghĩ với cái này bạn sẽ cần phải làm nó bằng tay.


Đã đồng ý. Có một lượng suy luận và kiến ​​thức nhất định về ý định của bạn cần có ở đây rằng máy tính không phù hợp lắm. Bạn sẽ có thể tự động hóa một số tác vụ (xem liên kết từ @dotweb) và có thể hợp nhất những thứ như giá trị màu thành một biến duy nhất, nhưng đó có lẽ là về nó.
Su '

Vâng, nhưng việc chuyển đổi từ LESS sang CSS là chuyển đổi 1 thành 1, vì vậy về mặt lý thuyết tồn tại một số thuật toán có thể tạo mã LESS được tối ưu hóa từ CSS ... Ai đó chỉ cần viết nó.
trusktr

Mixins có thể đi theo bất kỳ cách nào, vì máy tính dễ dàng thu thập và nhóm các bộ chọn với nhau và lồng chúng vào nhau. May mắn thay, đây là phần tẻ nhạt nhất của chuyển đổi và đây là phần có thể tính toán được (xem câu trả lời của tôi). Bất kể, do tính chất xếp tầng của CSS, nó có thể hiển thị khác với CSS gốc. Các biến và biểu thức là không thể. Máy tính không thể xác định ý định hoặc ngữ nghĩa. Làm thế nào một máy tính có thể tìm ra chiều rộng đó: 400 trong CSS thực sự là chiều rộng: độ rộng trang / 2 trong LESS? Nó có thể là một trình chuyển đổi để chuyển đổi màu sắc và phông chữ thành các biến.
Joel Rodgers

@JoelRodgers, tại sao tính chất xếp tầng của CSS ngụ ý rằng "trình dịch ngược" sẽ bị lỗi? (Rõ ràng một trình dịch ngược có thể có lỗi, nhưng về nguyên tắc, không khó để biết liệu việc sắp xếp lại các thuật ngữ có làm thay đổi ngữ nghĩa hay không).
Peter Taylor

Tôi đang nói về khai báo lớp và thuộc tính. Bạn phải khai báo chúng theo cùng một thứ tự nếu không bạn sẽ có kết quả khác nhau. Sai lầm, tôi có nghĩa là Quy tắc lồng nhau thay vì mixins.
Joel Rodgers

3

Làm thế nào về tìm kiếm và thay thế.

nếu bạn có color:#ffffffvà bạn muốn thay đổi nó thành@color

chỉ cần tìm kiếm color:#ffffffhoặc color : #ffffffvà thay thế bằng @color.

Tôi thường không tin tưởng những công cụ này.

hoặc bạn có thể viết một tập lệnh PHP thực sự đơn giản để xử lý nó.

Cập nhật 1 :
Hoặc bạn có thể sử dụng http://nex-3.com/posts/96-scss-sass-is-a-css-extension tương tự như ít hơn và nó có một công cụ chuyển đổi.


Đúng, tôi đã nghĩ về điều đó. Nhưng đó là một tệp khá lớn, vì vậy tôi muốn chắc chắn, đây sẽ là cách dễ nhất. ;) Hãy suy nghĩ về mixins, v.v.

hoặc bạn có thể viết một tập lệnh PHP thực sự đơn giản để xử lý nó.
fatnjazzy

1
Bạn sẽ không thể tìm thấy một công cụ đáng tin cậy chuyển đổi CSS thuần thành sử dụng các mixins LESS.
Alex

Bạn đúng rồi. Biến tự động và trộn là vô nghĩa.

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.