Tôi có một tập tin LESS rằng có một số biến:Đi qua biến LESS JavaScript
@font-size: 100%;
@label-align: left;
@field-width: 230px;
@icon-size: 16px;
@icon-padding: 8px;
Trong kịch bản JS của tôi, tôi cần phải biết tổng của một số giá trị ban đầu người dùng đã thiết lập trong file LESS. Giá trị css được tính toán có thể thay đổi theo kích thước vùng chứa gốc. Những giá trị này cũng thay đổi khi tải đầu tiên, tùy thuộc vào kích thước cửa sổ.
Một số yếu tố cũng được tạo động vì vậy sẽ rất khó để lấy đúng giá trị ban đầu trong JS vì tôi sẽ phải khai báo biến tại các điểm khác nhau trong mã và trong các phạm vi khác nhau.
Một ý tưởng tôi có là khai báo đối tượng "phạm vi cao" với một số biến giả và gán giá trị cho biến ngay sau khi tôi thêm phần tử vào DOM nhưng hóa ra là lộn xộn và dư thừa.
Sau nhiều giờ, tôi đã nghĩ ra ý tưởng này hiện đang hoạt động, khá đáng sợ nhưng hoạt động.
LESS:
.less-vars {
width: @field-width + @error-width + @icon-size + (@icon-padding * 2);
}
JS:
var less_vars = $('<div class="less-vars" />').hide().appendTo('body').width();
$('.less-vars').remove();
Có cách nào khác tôi có thể làm điều này?
Lưu ý: để giải quyết [IE lỗi 955.703] (https://connect.microsoft.com/IE/ feedback/details/955703) bạn phải bọc 'sRule = oRules [j] .cssText' trong' try/catch-Block'. Trong khi điều này được thực hiện một cách chính xác trong ý chính của bạn thì nó không nằm trong fiddle. – Aides