2011-08-08 37 views

Trả lời

12

Có thể sử dụng string interpolation:

@myvar: ((480/1366)*100); 
width: ~"@{myvar}%"; 

Điều đó sẽ ra

width: 35.13909224011713%; 

Ngoài ra, nếu bạn muốn nó được làm tròn, bạn có thể sử dụng round().

+0

Dù sao tôi có thể làm điều đó mà không có biến thể? Tôi đã thử chiều rộng: "@ {(237/768) * 100}%"; Nhưng có vẻ như không hoạt động ... – Joel

+0

Xin chào, tôi là một lần nữa!Hóa ra nó trở thành một chuỗi khi bạn làm như thế này. Tôi cần một số ... tức là kết quả cuối cùng là chiều rộng: "35.13909224011713%"; Vì vậy, tôi sợ điều này sẽ không hoạt động. – Joel

+0

Hóa ra bạn cũng cần phải thoát khỏi chuỗi! Vì vậy, đây là giải pháp đúng với ký hiệu ~: @myvar: ((480/1366) * 100); chiều rộng: ~ "@ {myvar}%"; – Joel

7

Mặc dù câu hỏi này khá cũ, tôi muốn thêm một vài ví dụ khác về việc thêm. Ít hơn sẽ thiết lập các đơn vị của bạn cho bất cứ điều gì đang được vận hành.

10px + 20px 

chí đầu ra 30px

(20/200) * 100% 

chí đầu ra 10%

Vì vậy, với các đơn vị bạn không cần phải nối đo đơn vị.

Tôi nhận thấy rằng việc thêm 0 sẽ giúp ích khi bạn không biết giá trị đơn vị có thể là gì.

.mixin(@x, @y){ 
    @result: (@x/@y) * 100; 
} 

.my_class { 
    .mixin(20, 100); 
    width: @result + 0%; // you can use any unit here 
} 

Lớp học trên sẽ có chiều rộng 20%. Nếu chúng ta thêm vào với px, nó sẽ là 20px.

1

Vì lý do nào đó, phương pháp tiết kiệm nhất và rõ ràng nhất là thiếu ở đây (trong câu trả lời của Richard Testani thực sự nhưng nó bị cản trở với mã tiếp theo dẫn đến sai hướng). Vì vậy, ... Câu trả lời cho bản gốc:

width: ((480/1366)*100)+'%'; 

cũng đơn giản như:

width: (480/1366*100%); 

Nói về percentage:

nó không phải là lừa quá nhưng cá nhân tôi sẽ không bao giờ sử dụng nó cho verbosity của nó và không dễ đọc. Tại quét nhanh percentage(480/1366) lần đọc giống như peekabooze(480/1366), do đó bạn phải dừng lại và nhìn chằm chằm vào nó để có được một đầu mối. Trái ngược với sự xuất hiện rõ ràng của % trong 480/1366*100% (hoặc 480/1366 * 100%) làm cho nó dễ dàng nhận thấy hơn.

+0

Một chút tắt chủ đề nhưng có một kế hoạch để lộ giá trị chính xác như là một lựa chọn trình biên dịch? – Harry

+1

@Harry, nope (không có trường hợp sử dụng, xem [# 1909] (https://github.com/less/less.js/pull/1909)). –

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