2012-06-20 22 views
5

Tôi đang làm việc về việc sử dụng một dự án sử dụng jQuery, và tôi cần phải tự động đặt chiều rộng dựa trên calc() bằng cách sử dụng jQuery. Vấn đề là cho calc để làm việc, CSS cần nhìn một cái gì đó như thế này:Cài đặt tất cả phiên bản tiền tố của nhà cung cấp có định dạng "width: calc ..." với jQuery?

CSS

width: -moz-calc(33% - 50px); 
width: -webkit-calc(33% - 50px); 
width: calc(33% - 50px); 

Khi tôi cố gắng sử dụng jQuery $(selector).css('width', 'calc(33% - 50px)'), tôi không thể thiết lập chiều rộng với nhiều nhà cung cấp tiền tố phiên bản của calc. Cách đúng để xử lý nhiều cài đặt của cùng một thuộc tính CSS trong jQuery là gì, để cho phép tiền tố của nhà cung cấp?

+0

tôi sẽ thêm một cái móc css mới. http://api.jquery.com/jQuery.cssHooks/ –

Trả lời

0

Các bạn đã thử một cái gì đó như:

calc = "calc(33% - 50px)"; 

if ($.browser.webkit) { 
    calc = "-webkit-"+calc; 
} 

$(selector).css('width',calc); 
+2

Trình duyệt đánh hơi là một ý tưởng kinh khủng, khủng khiếp. Có nhiều biến thể của WebKit, một số trong số đó có thể hỗ trợ -webkit-calc và một số không, một số bây giờ nhưng không phải trong tương lai, một số có các tính năng bổ sung như attr() bên trong calc và một số không, v.v. Cho đến khi Modernizr hỗ trợ biến thể của khả năng 'tiền tố' của nó xử lý calc, tôi khuyên bạn nên thiết lập thuộc tính với mỗi biến thể tiền tố của calc, sau đó đọc lại giá trị để xem nếu nó "mất", trong trường hợp này, bạn có thể tự tin rằng trình duyệt hỗ trợ phiên bản calc bạn qua nó. –

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