2012-06-20 6 views
5

Sto lavorando all'utilizzo di un progetto che utilizza jQuery e ho bisogno di impostare dinamicamente una larghezza basata su calc() usando jQuery. Il problema è che per calc al lavoro, la CSS ha bisogno di guardare qualcosa di simile:Impostazione di tutte le versioni con prefisso fornitore di "width: calc ..." Con jQuery?

CSS

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

Quando provo ad utilizzare jQuery $(selector).css('width', 'calc(33% - 50px)'), non riesco a impostare la larghezza con il fornitore multiplo prefissato versioni di calc. Qual è il modo giusto per gestire più impostazioni della stessa proprietà CSS in jQuery, per consentire il prefisso del fornitore?

+0

vorrei aggiungere un nuovo gancio CSS. http://api.jquery.com/jQuery.cssHooks/ –

risposta

0

Hai provato qualcosa di simile:

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

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

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

L'annusamento del browser è un'idea orribile e orribile. Esistono varianti di WebKit, alcune delle quali possono supportare -webkit-calc e altre no, alcune ora ma non in futuro, alcune con funzionalità aggiuntive come attr() all'interno di calc e altre no, ecc. Ecc. Fino a Modernizr supporta un variazione della sua capacità 'prefissata' che gestisce calc, raccomanderei di impostare la proprietà con ogni variante prefissa di calc, quindi di leggere il valore per vedere se è "preso", nel qual caso si può essere sicuri che il browser supporti la versione di calcolarti. –

Problemi correlati